호라이즌앱스 로고
← 기술 노트

엑셀 매크로 양식 사기 전 확인할 것, 판매자가 검산하는 항목

임균영조회 —

견적서 미리보기의 공급자 연락처 칸에 "설정에서 입력"이라는 글자가 찍혀 있었습니다. 전화번호가 들어갈 자리였습니다.

구매자가 회사 정보를 넣기 전에 인쇄하면, 거래처로 나가는 견적서에 이 안내 문구가 그대로 실립니다.

제가 파는 엑셀 매크로 완제품 8종을 전수 검수하다 나온 화면입니다. 이 견적서를 포함해 치명 결함이 3건 나왔습니다.

파일은 전부 열렸고 매크로도 돌았습니다. 열린다는 것과 어느 컴퓨터에서든 제대로 동작한다는 것은 서로 다른 이야기였습니다.

검수대에 오른 8종

학원 수납 관리, 차량 운행기록부, 모임 회비 장부, 프리랜서 수입·경비 장부가 있습니다. 대출 자산 시뮬레이터, 견적서·거래명세서 발행기, 임대 관리 장부, 웨딩 가계부까지 8종입니다.

시작가는 15,000원에서 30,000원입니다. 학원 수납이나 견적서처럼 받자마자 쓰는 파일이라 값이 낮은 대신 손이 덜 가야 합니다.

제작은 공정으로 돌립니다. 시트를 만들고 매크로와 입력 창을 자동으로 넣은 뒤, 스모크 테스트로 버튼을 눌러 봅니다.

그다음 실제 화면을 캡처해 설명서 PDF로 묶습니다. 사람이 손으로 하면 제품마다 달라질 부분을 한 틀에 넣으려는 구조입니다.

판매가 열리기 전에 기계 검사를 한 번 더 겁니다.

샘플이 들어 있을 때, 저장 후 다시 열었을 때, 초기화한 뒤의 세 시점에서 오류 셀이 0인지 봅니다.

버튼마다 연결된 매크로가 실제로 있는지, 입력 창이 오류 없이 뜨는지도 확인합니다. 8종 모두 이 검사에서 문제 0건이었습니다.

기계가 통과시킨 치명 결함

다음 단계로 제품마다 AI 검수자를 하나씩 붙였습니다.

설명서 문장을 실제 화면 설정과 매크로 코드에 대조하고, PDF를 렌더링해 눈으로 읽게 했습니다.

여기서 치명 결함 3건이 나왔습니다.

제품결함
견적서·거래명세서 발행기공급자 연락처 칸에 안내 문구가 값으로 남아 견적서에 인쇄됨
프리랜서 수입·경비 장부설명서가 없는 칸("입금 예정일")을 설명, 빠른 시작의 버튼 이름이 실제와 다름
차량 운행기록부시트마다 버튼 이름이 다른데("주유/정비"와 "주유/정비 입력") 한쪽만 안내

셋 다 오류 셀 검사로는 잡을 수 없는 종류입니다. 셀에는 오류가 없었고 버튼도 매크로에 제대로 이어져 있었습니다.

어긋난 곳은 사람이 읽는 층이었습니다. 인쇄면의 글자와 설명서의 문장, 버튼에 적힌 이름이 서로 맞지 않았습니다.

중요나 경미로 분류한 것도 더 있었습니다. 웹용 Excel에서 안 된다는 안내가 빠져 있었고, 초기화한 뒤 되돌리는 방법을 묻는 질문에 답이 없었습니다.

결함이 하나 더 있었습니다. 다른 7종에는 있는 [데이터 초기화]와 [샘플 복원] 버튼이 모임 회비 장부에만 빠져 있었습니다.

설명서는 버튼이 있다고 적고 있었습니다.

다른 7종과 같게 버튼을 붙이고 설명서 안내를 고쳤습니다. 전부 다시 빌드한 뒤 기계 검사를 돌려 0건을 다시 확인했습니다.

지운 자리에 남은 글자

견적서 건은 전날 고친 일의 잔재였습니다.

판매 화면 캡처에 샘플 전화번호가 보이면 외부 연락처로 오해받을 수 있어서 샘플 연락처를 일괄로 바꿨습니다.

그때 연락처 셀에 안내 문구를 값으로 넣었습니다. 옆에 따로 둘 안내가 인쇄 영역 안의 데이터가 된 셈입니다.

고친 방법은 단순합니다. 셀 값은 비우고 안내 문구는 옆 칸으로 옮겼습니다.

비우기만 하면 다음 함정이 기다립니다. 양식이 빈 칸을 참조하면 Excel은 그 자리에 0을 찍습니다.

그래서 양식 쪽 수식을 =IF(이름="","",이름) 꼴로 바꿨습니다. 회사 정보가 비어 있으면 인쇄면도 빈칸으로 남습니다.

이 일로 샘플을 지운다고 안전해지지 않는다는 것을 배웠습니다. 값과 수식과 안내 문장을 같이 봐야 고객 문서에 무엇이 찍힐지 보입니다.

설명서와 실제 버튼이 다를 때

운행기록부는 운행 시트와 비용 시트에 같은 기능의 버튼이 있었습니다. 한쪽 이름은 "주유/정비", 다른 쪽은 "주유/정비 입력"이었습니다.

설명서는 한쪽 이름만 적고 있었습니다. 처음 쓰는 사람은 설명서에 적힌 버튼을 찾다가 화면에 없으니 파일이 고장 났다고 여기게 됩니다.

같은 결의 실수가 판매 화면에서도 나왔습니다. 저는 고친 파일만 다시 봤고, 판매 페이지에 걸린 캡처는 한동안 확인하지 않았습니다.

입력 창 제목이 깨진 옛 캡처가 그대로 걸려 있었습니다.

8종 64장을 모두 새로 찍어 바꾸고, 올라간 이미지를 내려받아 원본과 일치하는지 대조했습니다.

코드 편집기를 열어야 보이는 결함

파일이 열리고 매크로가 돌아도 남는 곳이 하나 있습니다. Alt+F11로 여는 VBA 코드 편집기입니다.

같은 전수검사에서 모듈 이름 문제가 나왔습니다. 한국어 Excel은 통합 문서 모듈 이름을 한글로 만드는데, 이 이름이 저장 후 빈 이름으로 깨졌습니다.

그 모듈의 코드에 닿으면 Excel이 멈췄습니다. 구매자가 문구 하나 고쳐 보려고 Alt+F11을 누르는 순간이 위험했습니다.

매크로를 넣는 단계에서 이 모듈을 영문 이름으로 바꾸게 했습니다.

처음엔 ThisWorkbook으로 바꿨다가 코드 속 같은 이름의 속성과 부딪혀 모든 매크로가 오류 429를 냈습니다.

다른 영문 이름으로 정하고 8종을 다시 빌드했습니다.

사흘 뒤에는 한글 깨짐이 나왔습니다. 제작 PC에 Windows의 'UTF-8 사용(베타)' 설정이 켜져 있어서 매크로 코드 속 한글이 UTF-8로 저장되고 있었습니다.

코드 편집기는 시스템 코드페이지로 글자를 그립니다. 일반 한국어 Windows(CP949)에서 열면 주석과 메시지 문구가 알아볼 수 없는 글자로 보입니다.

저는 처음에 이걸 반대로 판단했습니다. 구매자 PC는 대부분 CP949라 정상으로 보일 거라고 답했는데, 파일을 열어 보니 바로 그 PC들에서 깨지는 상태였습니다.

추측을 멈추고 파일 안의 한글 낱말을 인코딩별로 셌습니다. CP949로 들어간 것은 0개, UTF-8로 들어간 것은 355개였습니다.

설정을 되돌려 다시 빌드한 뒤 작업본과 배포 압축본까지 24파일을 같은 검사에 넣었습니다. 24파일 모두 UTF-8 한글이 0이었고, 지금은 빌드할 때마다 이 검사를 돌립니다.

앞의 네 칸은 파일을 열어 보면 확인됩니다. 마지막 칸은 코드 편집기를 열어야 보이고, 제작 PC 설정을 되돌려 다시 빌드한 뒤에야 깨진 주석과 메시지가 한글로 돌아옵니다.

스모크 테스트가 놓친 경고창

같은 재빌드 중에 스모크 테스트가 3분 시간 제한에 걸려 멈췄습니다.

화면에 안 뜬 창의 문구를 읽어 보니 셀 병합이 해제될 수 있다는 경고였습니다.

원인은 일정표 새로고침 매크로였습니다.

표 아래 같은 열에 다른 표와 병합 셀이 있었고, 행을 지우거나 더할 때 그 아래 셀까지 통째로 밀고 있었습니다.

구매자 화면이었다면 [새로고침]을 누를 때마다 경고창이 뜨고 배치가 어긋났을 겁니다.

그 전 검사의 스모크 테스트는 이 창이 안 보이는 채로 넘어가 통과로 기록돼 있었습니다.

8종이 같이 쓰는 표 처리 코드를 셀을 옮기지 않는 방식으로 고쳤습니다. 그 뒤로는 스모크 테스트가 시간 제한에 걸리면 화면에 안 뜬 창의 문구를 같이 찍게 했습니다.

지원 범위부터 밝히는 이유

8종 모두 Windows용 Excel 2016 이상에서만 동작합니다. Mac, 모바일, 구글 시트에서는 버튼과 입력 창이 움직이지 않는다고 구매 전에 적어 둡니다.

매크로 양식은 입력 창과 버튼이 VBA로 돕니다. 이 환경을 벗어나면 남는 것은 계산식이 든 표뿐입니다.

판매자 귀책 하자, 곧 수식이나 매크로 오류는 기간 제한 없이 고칩니다. 기능 추가나 구조 변경, 사용자 실수로 생긴 복구는 별도 범위로 나눠 두었습니다.

경계를 먼저 밝혀 두면 사는 분의 위험이 줄어듭니다. 쓸 수 없는 환경이면 사기 전에 알게 되고, 고칠 일이 생겨도 누구 몫인지 따질 일이 없습니다.

완제품으로 될지, 맞춤이 필요할지

지금 상황맞는 선택
업무 흐름이 양식과 거의 같고 혼자 씀완제품 그대로
열 몇 개, 안내 문구, 로고 정도만 다름완제품 + 맞춤 조정
여러 명이 동시에 입력하거나 휴대폰으로 봐야 함웹 업무 시스템
계산 규칙이 양식과 크게 다름처음부터 맞춤 제작

학원을 운영한다면 학원 수납 관리 화면에서 미납 명단과 반별 집계가 어떻게 나오는지 먼저 보세요. 견적과 납품 문서를 같이 내는 업체라면 견적서·거래명세서 발행기가 가깝습니다.

맞춤 조정 범위는 제품마다 적어 두었습니다. 학원 수납 관리는 반·수강료 체계와 안내 문구, 열 추가를 맞추고 견적서 발행기는 로고와 양식 문구, 계좌·직인 영역을 맞춥니다.

표의 아래 두 줄에 가깝다면 양식을 고르기 전에 업무 시스템 상담에서 지금 쓰는 파일과 막히는 지점을 먼저 나눠 보셔도 됩니다. 엑셀로 버틸지 웹으로 옮길지가 거기서 갈립니다.

구매 전 판매자에게 물을 것

어느 판매자의 파일이든 결제 전에 아래 질문을 보내 보세요. 답이 바로 오는 항목과 머뭇거리는 항목이 갈리면 그 자체가 판단 근거가 됩니다.

  • 내 Excel 버전과 운영체제가 지원 범위인가. 사무실 PC와 집 PC가 다르면 둘 다 적어 물어보세요. Mac이나 웹용 Excel에서 쓸 계획이라면 이 질문 하나로 결론이 납니다.
  • 샘플을 지우고 초기화해도 오류 셀이 없는가. 판매 화면은 샘플이 꽉 찬 상태입니다. 빈 상태와 저장 후 다시 연 상태도 확인했는지 물어보세요.
  • 인쇄 양식에 안내 문구가 찍히지 않는가. 회사 정보를 넣기 전 상태의 인쇄 미리보기를 보여 달라고 해 보세요. "입력하세요" 같은 글자나 0이 찍히는지 바로 보입니다.
  • 설명서의 버튼 이름이 실제와 같은가. 설명서 캡처와 판매 화면 캡처의 버튼 이름을 나란히 놓고 보세요. 같은 기능이 시트마다 다른 이름이면 어느 쪽을 누르라는 건지 헷갈립니다.
  • 코드 편집기를 열어도 한글이 멀쩡한가. 깨진 상태여도 매크로는 돕니다. 나중에 안내 문구 한 줄을 고치려 할 때 드러나니 사기 전에 확인하세요.
  • 하자 수정 기간은 얼마인가. 수식·매크로 오류를 언제까지 고쳐 주는지, 무엇이 하자에서 빠지는지 같이 물어보세요. 제 경우 기능 추가와 사용자 실수 복구는 하자에서 뺍니다.
  • 맞춤 조정은 어디까지인가. 열 추가, 문구 변경, 로고처럼 범위가 적혀 있는지 보세요. 적혀 있지 않으면 내 양식에서 바꿀 곳을 주문 전에 보내 확인받으세요.

이어서 읽기