엑셀 노가다 끝! ChatGPT로 매크로(VBA) 코드 짜서 보고서 3초 만에 완성하기

매주 같은 엑셀 파일 열어서 복사-붙여넣기-서식-정렬 반복하고 계신다면, ChatGPT에 프롬프트 한 줄 던져서 VBA 매크로 코드를 받아 보고서를 자동 완성하는 방법이 있습니다.

솔직히 저도 VBA라는 단어만 들으면 머리가 아팠거든요. 프로그래밍은 개발자가 하는 거지, 왜 경영지원팀 직원인 내가 코드를 짜야 하나 싶었죠. 근데 매주 금요일마다 반복되는 그 보고서 작업이 진짜 문제였어요. 5개 시트에서 데이터 끌어오고, 피벗 정리하고, 조건부 서식 걸고, PDF로 변환해서 메일 보내고. 이걸 매번 40분씩 하고 있었으니까요.

그러다 한번 ChatGPT한테 “이 작업 자동화하는 VBA 코드 짜줘”라고 물어봤는데, 진짜 3초 만에 코드가 뚝딱 나오더라고요. 그 코드를 엑셀에 붙여넣고 실행 버튼 누르니까, 40분 걸리던 보고서가 눈 깜짝할 새에 완성됐어요. 그날 퇴근하면서 느낀 게 — 아, 이걸 진작 알았어야 했는데.

매주 반복되던 엑셀 지옥, 왜 VBA+ChatGPT인가

엑셀 반복 작업을 줄이는 방법은 사실 여러 가지예요. 함수 조합, 파워쿼리, 심지어 파이썬 연동까지. 근데 현실적으로 회사 PC에 파이썬 설치가 안 되는 곳이 대부분이잖아요. 파워쿼리는 데이터 정리에는 강력한데, 서식 적용이나 PDF 변환 같은 건 못 하고요.

VBA는 엑셀 안에 이미 내장된 프로그래밍 언어예요. 별도 설치가 필요 없어요. 문제는 그 문법을 배우는 데 시간이 걸린다는 거였는데, 여기서 ChatGPT가 게임 체인저가 됩니다. 내가 원하는 작업을 한국어로 설명하면, ChatGPT가 VBA 코드로 번역해 주는 거예요. 마치 통역사를 고용한 느낌이랄까요.

제가 처음 이 조합을 쓴 건 작년 초였어요. 매주 금요일 오후마다 영업팀 실적 데이터를 취합해서 요약 보고서를 만들어야 했는데, 시트 5개에서 데이터를 긁어와서 하나로 합치는 것만 15분이 걸렸거든요. ChatGPT한테 받은 VBA 코드 한 번 실행하니까 그 15분이 2초로 줄었어요. 과장이 아니라 진짜 체감상 2초.

📊 실제 데이터

Reddit의 r/excel 커뮤니티에서 ChatGPT로 VBA 매크로를 작성한 사용자들의 후기를 보면, 평균적으로 반복 작업 시간이 70~90% 단축되었다는 보고가 많습니다. 다만 처음 프롬프트를 작성하고 코드를 테스트하는 데 30분~1시간 정도 투자해야 하므로, 진짜 효과는 2회차 사용부터 체감된다는 의견이 지배적이에요.

한 가지 오해를 바로잡자면, ChatGPT가 만든 코드를 무조건 신뢰하면 안 됩니다. 처음 3~5번 정도는 구문 오류나 논리 오류가 나올 수 있어요. 하지만 그 오류 메시지를 다시 ChatGPT에게 던지면 대부분 수정해 주거든요. 이 과정까지 포함해도 수동으로 하는 것보다 훨씬 빠릅니다.

개발 도구 탭 활성화부터 매크로 녹화까지

ChatGPT한테 코드를 받기 전에, 먼저 엑셀에서 VBA를 쓸 수 있는 환경을 만들어야 해요. 어렵지 않아요. 딱 3단계면 끝납니다.

엑셀 상단 리본 메뉴에서 아무 곳이나 마우스 오른쪽 클릭하고, “리본 사용자 지정”을 선택하세요. 오른쪽 패널에 “개발 도구”라는 항목이 있는데, 체크박스에 체크만 하면 돼요. 확인 누르면 상단에 “개발 도구” 탭이 새로 생깁니다. 이게 끝이에요.

여기서 하나 더. 엑셀에는 “매크로 녹화”라는 숨겨진 기능이 있어요. 개발 도구 탭에서 “매크로 기록” 버튼을 누르면, 그때부터 내가 엑셀에서 하는 모든 동작이 VBA 코드로 자동 기록됩니다. 셀 선택, 서식 변경, 정렬 — 전부 다요. 녹화 종료하면 그 코드가 VBA 편집기에 저장돼 있어요.

근데 이 녹화된 코드를 그대로 쓰면 문제가 생겨요. 셀 주소가 A1:D50 같은 식으로 고정(하드코딩)되거든요. 다음 주에 데이터가 60행이 되면? 코드가 깨집니다. 이때 녹화된 코드를 ChatGPT에게 보여주면서 “이 코드를 데이터 크기에 상관없이 동적으로 작동하게 바꿔줘”라고 하면, 범위를 자동 감지하는 똑똑한 코드로 업그레이드해 줘요. 이게 바로 매크로 녹화 + ChatGPT 조합의 핵심이에요.

VBA 편집기를 여는 단축키는 Alt + F11이에요. 코드를 넣을 때는 편집기 왼쪽의 프로젝트 창에서 해당 파일을 찾고, 마우스 오른쪽 클릭 → 삽입 → 모듈을 선택하세요. 거기에 ChatGPT가 준 코드를 붙여넣으면 됩니다.

ChatGPT한테 VBA 코드 제대로 뽑아내는 프롬프트 작성법

여기서 진짜 중요한 게 나옵니다. ChatGPT한테 VBA 코드를 요청할 때, “엑셀 매크로 만들어줘”라고만 하면 쓸모없는 코드가 나와요. 제가 한 달 넘게 시행착오를 겪으면서 발견한 건, 프롬프트의 구체성이 결과물의 품질을 결정한다는 거예요.

좋은 프롬프트에는 다섯 가지가 들어가야 해요. 첫째, 데이터 구조를 설명해야 합니다. “A열에 날짜, B열에 거래처명, C열에 품목, D열에 수량, E열에 금액이 있어”처럼 열 구조를 구체적으로 알려주세요. 둘째, 원하는 결과물의 모습을 말해야 해요. “새 시트에 거래처별 월간 합계 테이블을 만들어줘”처럼요.

셋째가 많이들 놓치는 건데, 예외 상황을 미리 알려줘야 해요. “빈 셀이 있을 수 있어”, “날짜 형식이 혼재돼 있어” 같은 것들이요. 넷째, 출력 형식을 지정하세요. “결과를 테이블로 만들고, 헤더에 볼드 서식 적용해줘”까지 말해야 깔끔한 코드가 나옵니다. 다섯째, 마지막에 “주석(Comment)을 한국어로 달아줘”를 추가하면 나중에 코드 수정할 때 엄청 편해요.

💡 꿀팁

프롬프트 앞에 “너는 Excel VBA 전문가야”라는 역할 지정을 넣으면 코드 품질이 확 올라갑니다. 그리고 매크로 녹화로 만든 코드가 있다면, 그걸 통째로 ChatGPT에게 붙여넣고 “이 코드를 동적 범위로 개선하고, 에러 처리 코드도 추가해줘”라고 요청하는 게 가장 확실한 방법이에요. 맨땅에서 시작하는 것보다 성공률이 훨씬 높거든요.

실패했던 경험을 하나 말씀드릴게요. 처음에 저는 “영업 보고서 만드는 VBA 코드 짜줘”라고만 했어요. 나온 코드가 뭔가 그럴듯해 보여서 바로 실행했는데, 런타임 오류 1004가 뜨면서 멈추더라고요. 알고 보니 ChatGPT가 시트 이름을 “Sheet1″으로 가정했는데 제 파일은 “매출데이터”라는 한글 시트명이었던 거예요. 이런 사소한 차이 하나가 코드를 깨뜨립니다.

실전 — 주간 보고서 자동화 코드 만들기

이제 실제로 어떤 흐름으로 보고서 자동화 코드를 만드는지 보여드릴게요. 제가 실제로 사용하고 있는 프로세스입니다.

상황은 이래요. 매주 월요일에 전주 영업 데이터가 담긴 엑셀 파일을 받습니다. A열에 날짜, B열 영업사원명, C열 거래처, D열 품목, E열 수량, F열 매출액. 이걸 가지고 영업사원별 매출 요약표를 만들어서 팀장님한테 보고서로 올려야 해요.

예전에는 이랬어요. 데이터 필터 걸고, 영업사원별로 하나씩 복사해서 새 시트에 붙이고, SUM 함수 넣고, 서식 잡고, 차트 만들고. 한 명당 5분이면 영업사원 8명이니까 40분. 거기에 PDF 변환까지 하면 50분 가까이 걸렸어요.

작업 단계 수동 소요시간 VBA 자동화 후
데이터 취합·정리 15분 2초
영업사원별 요약표 20분 1초
서식·조건부 서식 10분 1초
PDF 변환·저장 5분 1초

ChatGPT한테 보낸 프롬프트는 이랬어요. “너는 Excel VBA 전문가야. 현재 활성 시트에 A열 날짜, B열 영업사원명, C열 거래처, D열 품목, E열 수량, F열 매출액 데이터가 있어. 1행은 헤더야. 데이터 행 수는 매주 달라져. 이 데이터를 영업사원별로 새 시트에 분리하고, 각 시트에 매출 합계행을 추가하고, 헤더에 볼드+배경색 서식을 적용하고, 마지막에 전체를 PDF로 저장하는 VBA 코드를 작성해줘. 주석은 한국어로 달아줘.”

이렇게 구체적으로 요청하니까, 바로 쓸 수 있는 수준의 코드가 나왔어요. 물론 한 번에 완벽하진 않았어요. PDF 저장 경로가 고정 경로로 되어 있어서, “저장 경로를 사용자가 선택하도록 대화상자(FileDialog)를 추가해줘”라고 한 번 더 요청했어요. 그 수정까지 합쳐서 총 5분 만에 완성된 매크로를 손에 넣었습니다.

이 코드를 개인용 매크로 통합 문서(PERSONAL.XLSB)에 저장해두면, 어떤 엑셀 파일을 열든 언제든지 실행할 수 있어요. 매주 파일만 바뀌고 구조가 같으니까, 한 번 만들어놓으면 계속 재활용이 가능한 거죠.

에러 터졌을 때 ChatGPT로 디버깅하는 법

솔직히 말할게요. ChatGPT가 처음부터 완벽한 코드를 주는 경우는 절반 정도예요. 나머지 절반은 에러가 나요. 근데 당황할 필요 없어요. 에러 메시지 자체가 ChatGPT한테 보내는 최고의 디버깅 재료거든요.

가장 흔하게 마주치는 에러가 “런타임 오류 1004”예요. 이건 대부분 시트 이름이 안 맞거나, 참조 범위가 잘못된 경우에 발생합니다. 에러가 뜨면 엑셀이 노란색으로 하이라이트해서 문제 줄을 알려주거든요. 그 줄을 포함해서 에러 메시지를 캡처하거나 복사해서 ChatGPT에게 “이 VBA 코드에서 런타임 오류 1004가 발생해. 노란 하이라이트된 줄은 이거야. 원인과 해결 방법을 알려줘”라고 보내면 됩니다.

제가 겪었던 웃긴 에러가 하나 있어요. 영업사원 이름에 “/” 슬래시가 들어간 사람이 있었는데(가명이지만 “해외/국내팀” 같은 식), 그걸 시트 이름으로 쓰려니까 엑셀이 거부한 거예요. 시트 이름에 특수문자를 쓸 수 없거든요. 이런 엣지 케이스는 ChatGPT도 미리 잡아내지 못했어요. 에러가 터진 후에야 “시트 이름에 사용 불가한 특수문자를 자동으로 제거하는 코드를 추가해줘”라고 요청해서 해결했습니다.

디버깅할 때 팁이 하나 있어요. 에러 메시지만 보내지 말고, 내가 뭘 하려고 했는지 맥락도 함께 보내세요. “주간 보고서 자동화 매크로인데, 영업사원별로 시트를 나누는 과정에서 이 에러가 발생해”처럼요. 맥락이 있으면 ChatGPT가 더 정확한 수정안을 내놓습니다.

💬 직접 써본 경험

저는 처음 한 달 동안 총 12개의 매크로를 ChatGPT로 만들었는데, 그 중 한 번에 에러 없이 작동한 건 5개였어요. 나머지 7개는 1~3회 수정이 필요했고요. 근데 3개월째부터는 제가 프롬프트를 쓰는 실력이 늘면서 한 번에 통과하는 비율이 확 올라갔어요. 결국 프롬프트 작성 실력이 곧 VBA 자동화 실력이더라고요.

ChatGPT VBA의 한계와 반드시 알아야 할 주의사항

여기까지 읽으면 ChatGPT가 만능처럼 보일 수 있는데, 분명한 한계가 있어요. 이걸 모르고 쓰면 오히려 업무가 꼬일 수 있어서 꼭 짚고 넘어가야 합니다.

첫 번째, ChatGPT는 내 엑셀 파일을 직접 보지 못해요. 내가 설명한 구조만 가지고 코드를 짜기 때문에, 설명이 부정확하면 코드도 부정확합니다. 특히 병합 셀이 있거나, 데이터 시작 행이 1행이 아닌 경우 이런 디테일을 빠뜨리면 높은 확률로 에러가 나요.

두 번째, 보안 이슈예요. Microsoft가 2022년부터 인터넷에서 다운로드한 파일의 매크로를 기본 차단하고 있거든요. 회사 보안 정책에 따라 VBA 자체가 막혀 있는 경우도 많습니다. IT 부서에 확인 먼저 하세요. ChatGPT한테 사내 기밀 데이터를 보내는 것도 문제가 될 수 있어요. 데이터 구조만 설명하고, 실제 데이터는 보내지 않는 게 안전합니다.

세 번째, 복잡한 비즈니스 로직은 한계가 있어요. 단순 반복 작업(데이터 정리, 서식, 필터링, PDF 변환)에는 아주 강력하지만, 회사 고유의 복잡한 계산 로직이나 조건 분기가 10개 넘어가는 작업은 ChatGPT가 한 번에 처리하기 어렵습니다. 이런 경우 작업을 잘게 쪼개서 모듈별로 요청하는 게 성공 확률을 높여요.

⚠️ 주의

ChatGPT가 생성한 VBA 코드를 반드시 테스트 파일에서 먼저 실행하세요. 원본 데이터에 바로 돌리면, 코드에 삭제나 덮어쓰기 명령이 포함됐을 때 복구가 불가능합니다. 실제로 저도 한번 원본 파일에서 바로 실행했다가, 시트가 전부 날아간 적이 있어요. 그 뒤로는 무조건 사본을 만든 뒤에 테스트합니다.

네 번째로, 코드를 전혀 이해하지 못한 채 쓰면 위험해요. 코드 한 줄 한 줄을 다 알 필요는 없지만, 최소한 “이 부분이 데이터를 읽는 부분이고, 저 부분이 시트를 생성하는 부분이고, 마지막이 저장하는 부분”이라는 큰 흐름은 파악해야 합니다. 그래야 뭔가 이상할 때 어디를 고쳐야 하는지 감이 잡혀요.

마지막으로, 파일 저장 형식을 주의하세요. VBA 매크로가 포함된 파일은 일반 .xlsx가 아닌 .xlsm(매크로 사용 통합 문서) 형식으로 저장해야 해요. .xlsx로 저장하면 매크로가 사라집니다. 처음에 이거 몰라서 공들여 만든 매크로를 날려먹은 적도 있어요.

❓ 자주 묻는 질문

Q. VBA를 전혀 몰라도 ChatGPT로 매크로를 만들 수 있나요?

네, 가능합니다. 다만 프롬프트를 구체적으로 써야 하고, 에러가 나면 그 메시지를 다시 ChatGPT에게 보내서 수정하는 과정이 필요해요. VBA 기초 지식이 조금이라도 있으면 훨씬 수월하지만, 없어도 시작할 수 있어요.

Q. ChatGPT 무료 버전으로도 VBA 코드를 받을 수 있나요?

무료 버전으로도 기본적인 VBA 코드 생성이 가능합니다. 하지만 복잡한 로직이나 긴 코드는 유료 버전에서 더 정확한 결과가 나오는 편이에요. 간단한 작업부터 무료 버전으로 시작해 보세요.

Q. 회사에서 ChatGPT 접속이 차단돼 있으면 어떻게 하나요?

개인 스마트폰으로 ChatGPT 앱을 사용하거나, 퇴근 후 집에서 코드를 생성한 뒤 USB나 메일로 옮기는 방법이 있어요. 코드만 가져오면 되니까 보안 데이터가 유출될 위험은 없습니다.

Q. 매크로 녹화 없이 처음부터 ChatGPT한테 코드를 요청해도 되나요?

됩니다. 다만 매크로 녹화로 먼저 초안 코드를 만든 뒤 그걸 개선해달라고 하면 성공률이 높아져요. 녹화 코드가 일종의 설계도 역할을 해주기 때문이에요.

Q. ChatGPT 말고 다른 AI도 VBA 코드를 생성해 주나요?

Claude, Gemini, Copilot 등도 VBA 코드를 생성할 수 있어요. 특히 Microsoft 365 Copilot은 엑셀 안에서 직접 작동하기 때문에 별도 복사-붙여넣기 과정이 필요 없다는 장점이 있습니다. 다만 구독료가 별도로 발생해요.

본 포스팅은 개인 경험과 공개 자료를 바탕으로 작성되었으며, 전문적인 의료·법률·재무 조언을 대체하지 않습니다. 정확한 정보는 해당 분야 전문가 또는 공식 기관에 확인하시기 바랍니다.

Microsoft VBA 공식 문서 바로가기

(URL 확인 후 교체 필요)

정리하자면

엑셀 반복 작업을 줄이고 싶다면, ChatGPT + VBA 매크로 조합이 현재 가장 현실적인 방법이에요. 코딩을 몰라도 프롬프트만 잘 쓰면 쓸 만한 자동화 코드를 받을 수 있고, 에러가 나도 다시 물어보면 됩니다. 다만 원본 파일에 바로 실행하지 말 것, 사내 보안 정책을 먼저 확인할 것, 코드의 큰 흐름은 이해한 뒤에 쓸 것 — 이 세 가지만 기억하세요.


혹시 이 글 보고 실제로 매크로 만들어보신 분 계시면 댓글로 경험 공유해 주세요. 어떤 작업을 자동화했는지 궁금해요. 도움이 됐다면 공유도 부탁드립니다.

관련 포스팅

댓글 남기기