긴 매크로 작업을 나눌 때: 검산과 복구 단계 보존하기
AI에게 매크로 작업을 부탁했더니 여덟 단계를 한 번에 제시했다면, 설명을 여섯 단계씩 나누는 것만으로 안전한 절차가 되지는 않습니다. 원본을 건드리기 전에 멈춰 확인할 지점, 잘못됐을 때 되돌아갈 지점이 있어야 합니다. “한 묶음은 최대 6단계”라는 요청을 지키면서도 원래 작업과 검산을 빠뜨리지 않는 방법을 실습하겠습니다.

여덟 단계를 실제 작업으로 적습니다
가상 주문표를 정리하는 업무입니다. 원본 통합 문서에 시트 주문이 있고 A1:C7에는 주문ID·상태·금액이 있습니다. 이 글은 매크로를 실행하지 않고, AI가 제안한 절차를 실행 전 검토 가능한 작업 지시서로 바꿉니다.
| ID | 할 일 | 완료를 확인할 기준 |
|---|---|---|
| M01 | 원본의 작업 사본 만들기 | 원본과 작업 사본을 이름으로 구분 |
| M02 | 주문 시트와 A1:C7 범위 확인 | 헤더 3개와 데이터 6행 확인 |
| M03 | 주문ID의 빈칸·중복 확인 | 이상 행을 별도 기록, 자동 삭제 없음 |
| M04 | 상태값과 금액 형식 확인 | 미등록 상태·숫자 아닌 금액 별도 기록 |
| M05 | 완료 주문만 대상으로 삼기 | 포함 주문ID 목록 작성 |
| M06 | 완료 금액 합계 계산 | 원본 해당 행의 손계산 합계와 대조 |
| M07 | 검토용 결과 시트에 기록 | 원본 6행 보존, 결과에 범위·조건·합계 표시 |
| M08 | 결과를 확인하고 작업 사본 저장 | 저장 전후 파일명·결과·원본 보존 확인 |
작업의 시작과 끝을 이렇게 적으면 원래 “단계 1~8”처럼 내용 없는 번호보다 검토하기 쉽습니다. M03·M04에서 이상 입력이 발견되면 뒷단계가 그 값을 임의로 고치지 않도록 멈춤 조건을 정합니다.
두 묶음 사이에 승인할 결과물을 둡니다
첫 묶음은 M01~M06입니다. 최대 6단계를 지키며 사본, 입력 점검, 포함ID, 기대 합계까지 준비합니다. 여기서 포함ID와 기대 합계를 사람이 확인한 뒤에 둘째 묶음 M07~M08로 넘어갑니다. 둘째 묶음은 검토용 결과 기록과 저장 2단계입니다. 전체 8단계가 그대로 남고 순서도 보존됩니다.
각 묶음의 제목도 “첫째/둘째”보다 결과물을 드러내는 편이 좋습니다. 첫 묶음은 입력과 기대합계 확인, 둘째는 결과 기록과 저장이라고 적습니다. M07을 M06보다 먼저 실행하라는 제안이나 원본을 덮어쓰라는 제안이 생기면 단계 수가 맞아도 거절합니다.
묶음 A 완료 조건:
작업 사본 이름을 확인했고 원본은 열어 보기만 했다.
데이터6행과 헤더3개가 맞다.
빈ID·중복ID·미등록상태·숫자아닌금액은 검토 목록에 남겼다.
완료 주문ID 목록과 기대 합계를 확인했다.
이상 입력이 있으면 묶음 B를 실행하지 않는다.
묶음 B 완료 조건:
검토용 결과 시트에 입력 범위·조건·포함ID·합계를 적었다.
원본6행이 남아 있다.
저장할 작업 사본 파일명을 확인했다.
AI에 절차를 다시 요청하는 문장
아래 여덟 작업을 순서와 ID를 유지해 작업 지시서로 바꿔 주세요.
한 묶음은 최대6단계이고 단계를 삭제하거나 합쳐서 숨기지 마세요.
묶음 사이에 확인할 결과물과 중단 조건을 적어 주세요.
M01~M06의 결과를 확인하기 전에는 M07~M08을 실행하지 않습니다.
원본 수정·행삭제·원본덮어쓰기·메일발송은 범위 밖입니다.
출력: 묶음명 / 단계ID / 할 일 / 완료 기준 / 오류 시 복구
코드는 아직 작성하지 마세요. 불명확한 파일명·시트명은 질문하세요.
AI가 단계 수를 줄이려고 “데이터 점검 후 집계·저장”을 한 단계로 뭉쳤다면 원래ID가 모두 나오는지 확인하세요. 짧은 설명 안에 여러 외부 변경이 숨으면 중간 오류가 어디서 났는지 찾기 어렵습니다. 단계의 수는 읽기 제한이고, 매크로 Sub 프로시저의 개수나 Excel의 실행 제한을 뜻하지 않습니다.
VBA 코드가 필요해도 업무 단위로 나눕니다
설명 묶음을 그대로 두 개의 Sub로 바꿔야 하는 규칙은 없습니다. 코드에서는 입력 검증, 계산, 결과 기록의 역할과 재실행 안전성을 보고 나눕니다. “한 Sub에 여섯 줄만 넣기”처럼 줄 수를 기능 단위로 오해하지 마세요. AI에게 다음 내용을 먼저 받으면 됩니다.
- 사용할 통합 문서와 시트·범위를 명시하고 ActiveSheet에 의존하지 않는지 확인
- 빈ID·중복ID·미등록상태·숫자아닌금액에서 멈추는지 확인
- 계산 전에 원본 데이터를 어떤 방식으로 읽는지 설명
- 쓰기 대상은 검토용 결과 시트 하나인지 확인
- 다시 실행했을 때 결과행을 중복 추가하거나 원본을 바꾸지 않는지 확인
- 오류가 나도 화면 갱신 등 임시 설정을 복구하는지 확인
Microsoft Range.Value 문서는 범위 값을 읽거나 쓰는 기능의 기준입니다. 값을 쓰는 코드가 포함되면 그 시점과 대상 범위를 검토표에 따로 표시하세요. 매크로 실행을 위해 보안 설정을 광범위하게 낮추는 단계는 이 절차에 추가하지 않습니다. 조직의 승인된 정책과 Excel 매크로 보안 안내를 확인해야 합니다.
실패한 지점에 따라 복구합니다
| 실패 | 진행을 멈출 지점 | 복구 |
|---|---|---|
| 시트 이름이 다름 | M02 | 실제 시트명과 작업 사본을 확인해 요청문 수정 |
| ID가 중복됨 | M03 | 중복을 기록하고 어떤 주문이 원본인지 확인 |
| 금액이 텍스트임 | M04 | 숫자 변환 승인을 받고 별도 열에서 원본과 대조 |
| 기대 합계와 다름 | M06 | 완료ID 목록·포함행·금액부터 다시 비교 |
| 결과 기록 중 오류 | M07 | 결과 시트를 점검하고 원본이 보존됐는지 확인; 전체를 무조건 재실행하지 않음 |
| 저장할 파일명이 원본임 | M08 | 저장 중단 후 작업 사본 경로로 변경 |
여덟 단계에서 M07·M08을 지워 6개만 남겼다면 저장과 결과 검토가 빠진 것입니다. 반대로 8개를 첫 묶음에 그대로 두었다면 요청한 읽기 제한을 어겼습니다. 단계ID 전체가 한 번씩 나오며, 순서와 완료 기준이 유지됐는지 확인하세요.
바로 쓸 검토 기록
작업 사본 이름과 원본 이름:
원본 단계 ID 목록:
묶음 A 단계 ID / 완료 기준:
묶음 B 단계 ID / 완료 기준:
묶음 사이 확인자와 확인할 결과물:
중단 조건과 복구 시작 단계:
코드의 읽기 범위 / 쓰기 범위:
재실행 시 중복·덮어쓰기 방지 방법:
최종 저장 파일명과 확인 시각:
작성·기술 기준일은 2026-10-04 KST입니다. 설명용 절차에서 M01~M08을 보존하고 6+2로 분리한 것을 확인했습니다. 실제 Excel·VBA 실행이나 파일 저장은 시험하지 않았습니다. 코드가 준비되면 승인된 작업 사본에서 입력·결과·오류 복구를 추가로 검증해야 합니다.
구체적 매크로 요청은 ChatGPT에 VBA를 요청하는 방법을, 수식과 코드의 입력 계약은 AI 수식·VBA 요청 전 검산을 참고하세요.