
「대화도 필요 없이 매크로가 수정된다」 엑셀의 신(神髄)이 내놓은 답에 도달한 이야기
요약
Excel VBA 환경에서 채팅창 없이 버튼 클릭만으로 AI가 매크로 코드를 직접 수정하도록 구현한 개발 사례를 소개합니다. Claude Code나 Gemini CLI를 백그라운드에서 호출하여 코드를 자동으로 교체하고 복원하는 워크플로우를 구축했습니다.
핵심 포인트
- 채팅창 없이 버튼 하나로 AI 코드 수정 및 자동 교체 구현
- VBA에서 AI CLI(Claude Code, Gemini CLI)를 백그라운드로 호출
- 코드 펜스 제거 및 Sub/Function 형식 검증 등 안전한 치환 로직 적용
- 수정 실패 시 즉시 복구 가능한 복원 기능 포함
먼저, 제 손에서 매일 일어나고 있는 일을 그대로 적겠습니다.
매크로 목록에서 수정하고 싶은 매크로를 선택한다. 옆의 콤보 박스에서 「에러 처리 추가해줘」를 선택한다. **[AI 수정]**을 누른다.
버튼이 「처리 중」으로 바뀌고, 타이틀 바에서 경과 초가 카운트된다. 8초 후, 목록이 재구성되어 수정된 매크로가 선택된 상태로 돌아온다. 마음에 들지 않으면 복원 버튼으로 원래대로.
여기까지 오는 동안, 화면 어디에도 채팅창은 열려 있지 않습니다. AI와 대화하고 있지 않은 것입니다. 코드도 보고 있지 않습니다. VBE도 열지 않았습니다. 그런데도 매크로는 수정되어 있습니다.
(실제로 버튼을 누른 후 수정될 때까지의 소개 영상·52초입니다. 채팅 화면은 한 번도 나오지 않습니다)
브라우저에서 AI에게 물어보는 시대의 다음은 아마 이것일 것입니다. AI가 도구 안에 살면서, 질문을 받기 전에 일을 하는 것. 그것이 Excel 폼의 버튼 하나로 시작되었습니다.
지난 기사 마지막에 「VBA에서 AI를 호출하여, 수정된 코드가 돌아오기까지 실측 6초」라고 적었습니다. 이번에는 그 실험이 도구가 된 이야기, 그리고 이 통로 끝에 무엇이 보이는지에 대한 이야기입니다.
- 매크로 목록 폼에 [AI 수정] 버튼을 추가했다. 선택하고, 지시를 선택하고, 누르기만 하면 된다 - VBA에서 AI의 CLI (Claude Code / Gemini CLI)를 백그라운드에서 호출하여, 돌아온 코드를 자동으로 교체한다
- 수정 지시는 「고속화해줘」 등의 정형화된 문구에서 선택할 수 있다. 직접 입력도 가능하다
- 모델과 AI 엔진도 콤보 박스로 전환. 실패하면 복원 버튼으로 한 번에 되돌린다
- 지난번에 만든 [복사] [치환] 부품이 그대로 이번 프로젝트의 심장이 되었다
- 정말로 만들어낸 것은 버튼이 아니라 「Excel과 AI를 잇는 통로(土管)」. 수식·검사식·시트 수정까지, 이 너머의 모든 것이 사정권에 들어온다
지난번, 매크로 목록 폼에 버튼 2개(복사·치환)를 달아서 AI 채팅과의 복사/붙여넣기 왕복을 「누르기만 하면 되도록」 만들었습니다.
VBE를 열지 않고 매크로가 수정된다. 여기까지 해서 일상의 수정은 상당히 편해졌지만, 한 가지 남아 있는 것이 있었습니다.
복사/붙여넣기를 운반하는 역할입니다. 코드를 채팅으로 옮기고, 답을 Excel로 다시 옮겨오는 것. 그 왕복만큼은 아직 인간의 일이었습니다.
여기서 조금 전의 이야기를 하겠습니다.
Excel VBA를 쓰는 사람이라면 누구나 알고 있는 「엑셀의 신수(エクセルの神髄)」라는 사이트가 있습니다. 저도 오랫동안 도움을 받아왔습니다. 무엇을 할 수 있고, 어디서 사용할 수 있으며, 어디에 함정이 있는지. 계단을 한 칸씩 끝까지 써 내려가는 그런 사이트입니다.
그 신수(神髄)님이 작년에 AI에게 VBA를 리팩터링(Refactoring)하게 하여 다시 써넣는다는 기사를 올렸습니다.
읽고 나서 조금 걸리는 부분이 있었습니다.
평소의 신수님이라면 반드시 썼을 「그래서 무엇을 할 수 있는가」가 별로 적혀 있지 않았던 것입니다. 메커니즘은 제시되어 있다. 하지만 이 길 끝에 무엇이 있는지는 적혀 있지 않다. 평소 그렇게 친절하게 가르쳐주는 사람의 기사였기에, 그 정적이 오히려 눈에 띄었습니다.
답을 쓰지 않은 것인지, 아니면 「앞길은 스스로 걸어가라」는 뜻이었는지. 그것은 모릅니다. 다만 저는 그 찜찜함을 1년 동안 기억하고 있었습니다.
지난번 버튼 2개를 만들었을 때, 치환 버튼 안에는 몇 가지 장치를 넣어두었습니다.
- 코드 펜스(```)를 자동으로 제거
- Sub / Function 형식이 아니면 아무것도 하지 않음
- 코드의 이름을 읽어서, 동일한 이름의 매크로를 교체한다. 없으면 추가한다
- 치환 전의 코드는 따로 보관하여, 복원 버튼으로 되돌릴 수 있다
이것은 「AI 채팅의 응답을 안전하게 받아내는 입구」입니다. 만들 당시에는 깨닫지 못했지만, 이 입구는 응답을 운반해 오는 것이 반드시 인간일 필요는 없습니다.
클립보드에 올바른 코드가 올라가 있기만 하면, 누가 올려도 상관없습니다. AI가 직접 올려도 됩니다.
VBA에서 Claude Code의 CLI를 호출하는 실험은 단 9줄로 통과했습니다. 프롬프트를 임시 파일에 쓰고, WScript.Shell로 claude -p를 백그라운드에서 실행하여, 답을 파일로 받는다. 그것뿐입니다.
처음에는 왕복 25초가 걸렸습니다. 원인을 찾아보니 AI가 아니라 호출 방식 문제였습니다. 작업 폴더를 중립적인 위치로 설정하고, 표준 입력 대기를 끊고, 모델을 가벼운 것으로 바꾼다. 그것만으로 6초가 되었습니다. 이 경위는 지난 기사와 같습니다.
솔직히 말씀드리면, 어려운 것은 아무것도 하지 않았습니다. 9줄입니다.
그렇기에 오히려 신기했습니다. 이렇게 간단하다면 왜 아무도 하지 않았을까. ── 이 의문에 대한 답은 기사 후반부에서 쓰겠습니다.
메커니즘이 작동한다면, 남은 것은 폼에 살게 하는 것뿐입니다.
매크로 목록 폼의 완전한 복사본을 만들어(원래의 폼은 전혀 건드리지 않고) 하단에 추가했습니다.
[AI 수정] 버튼과 3개의 콤보 박스입니다.
수정 지시 콤보: "속도를 높여줘", "에러 처리를 추가해줘", "주석을 달아서 알기 쉽게 해줘", "다른 Excel에 복사해도 작동하도록 단독으로 완결시켜줘"…… 정형화된 13종 중에서 선택. 직접 입력하거나, 선택한 뒤 내용을 덧붙이는 것도 자유
모델 콤보: haiku / sonnet / opus
엔진 콤보: claude / gemini. 전환하면 모델 선택지도 연동되어 바뀜
사용법은 3단계입니다.
- 목록에서 매크로를 선택한다
- 지시를 선택한다 (예: "속도를 높여줘")
- **[AI 수정]**을 누른다
버튼이 "처리 중"으로 바뀌고, 타이틀 바에 경과 초가 표시됩니다. 기다리세요, 이날 실측 결과 8초였습니다. 수정된 코드가 클립보드에 올라가고, 이전에 만든 [치환] 처리가 그대로 실행됩니다. 펜스 제거, 서식 검사, 이름 판정, 퇴피. 전부 이전의 부품들입니다.
목록이 다시 구성되어, 수정된 매크로가 선택된 상태로 돌아옵니다. 마음에 들지 않으면 **[복원]**으로 치환 전 상태로 되돌립니다.
채팅 화면은 처음부터 끝까지 나타나지 않습니다. 대화도 필요 없이 매크로가 수정됩니다.
치환의 메커니즘은 "동일한 이름이 없으면 추가"하는 방식이므로, 지시에 "~라는 매크로를 만들어줘"라고 쓰면 수정이 아닌 신규 생성이 됩니다.
제가 만든 애드인(秀.xlsm)은 "표준 모듈에 Sub를 두기만 하면 메뉴에 나열되는" 구조입니다. 즉, 버튼을 누르고 십수 초 후에는 새로운 매크로가 메뉴에 나열되어 바로 선택하여 실행할 수 있습니다.
만들어진 결과물의 외형은 폼의 버튼 하나뿐입니다. 하지만 정말로 만들어낸 것은, **"Excel에서 AI에게 무언가를 전달하고, 답을 Excel에 다시 채워 넣는" 범용적인 파이프(Pipe)**입니다.
이번에 이 파이프에 흘려보낸 것은 매크로 코드였습니다. 하지만 파이프는 내용물을 가리지 않습니다. 수식을 흘려보내면 수식의 답이 돌아오고, 시트의 정보를 흘려보내면 시트의 답이 돌아옵니다. Excel 안에 있는 모든 것이 AI의 사정권에 들어왔다는 뜻입니다.
여기서 한 가지 짚어두자면, Anthropic 공식의 "Claude for Excel"은 셀과 수식을 읽고 쓸 수 있지만, VBA·매크로에는 손을 댈 수 없습니다. 매크로는 공식적인 공백 지대입니다. 이번 작업은 그 공백을 현장의 Excel 측에서 메운 형태가 됩니다. 게다가 클라우드 애드인이 아니므로, Excel 측에 넣어야 할 것은 북(Book) 하나뿐입니다. 애드인 등록도 참조 설정도 필요 없습니다.
파이프가 통했으므로, 다음에 흘려보낼 것은 이미 눈에 보입니다.
우선 수식입니다. 현장의 수요는 사실 매크로보다 수식이 훨씬 더 클 것입니다.
만들기: "부가세 포함 소계를 계산해줘" → 식이 입력됨
해설하기: 타인의 시트를 인계받아, 긴 IF 중첩문 앞에서 멍해질 때── 그 식의 의미를 일본어로 설명받기
체크하기: #REF! 오류나 범위 어긋남, 행을 추가하면 깨지는 식을 찾아달라고 하기. 다시 쓰지 않는 읽기 전용이므로 사고 걱정이 없어 가장 배포하기 쉬움
데이터 유효성 검사 식이나 조건부 서식의 식도 같은 방식으로 고칠 수 있습니다. 읽는 곳과 다시 쓰는 곳이 다를 뿐, 중간의 AI 왕복 과정은 이번에 만든 것을 그대로 사용할 수 있기 때문입니다.
그리고 정밀도의 핵심은, 시트의 구조 자체를 AI에게 전달하는 것이라고 생각합니다. 식만 전달해서는 AI가 C열이 무엇인지 알 수 없습니다. "A1:F200에 표가 있고, 1행은 헤더이며, C열은 날짜이다"── 그러한 사실을 식과 함께 전달하면, 답은 추측에서 확신으로 바뀝니다. 시트의 구조를 기계적으로 읽어 내려가는 것은 VBA의 특기 분야입니다. 이 단계에 이르면 수식은 물론이고 시트 수정 그 자체가 사정권에 들어옵니다.
도달할 종착지는 "북과 대화하는 Excel"이라고 생각합니다. 과장되게 들릴지 모르겠지만, 파이프는 이미 뚫려 있습니다. 남은 것은 흘려보낼 것을 늘려가는 것뿐입니다.
조금 큰 이야기를 하겠습니다.
정부는 지금 가버먼트 AI 「Genna(源内)」를 모든 부처의 공무원 약 18만 명에게 전개하고 있습니다. 보정 예산 44억 엔. 장래에는 지방 공무원 280만 명까지 시야에 넣은 진지한 시도입니다.
그리고 올해 7월 국회에서 안노 타카히로(安野貴博) 의원이 이 '겐나이(源内)'에 대해 질의했습니다. AI 이용료는 종량제(Pay-as-you-go)로, 사용하면 사용할수록 비용이 늘어납니다. 특히 에이전트형(Agentic) AI는 내부적으로 수없이 많은 시도를 반복하기 때문에 토큰(Token) 소비량이 차원이 다르게 많습니다. 그런데 그 비용의 전체상을 "내각부도 디지털청도 파악하지 못하고 있다"는 사실이 답변을 통해 밝혀졌습니다. 예산이 부족하면 현장은 성능이 낮은 모델로 버티거나, 아예 사용하지 못하게 될 것이라고 안노 의원은 경고하고 있습니다.
오해를 없애기 위해 덧붙이자면, 저는 겐나이를 훌륭한 시도라고 생각합니다. 44억 엔의 상당 부분은 AI의 지능을 위해서가 아니라, "행정 문서를 AI에게 보여줘도 된다"라는 안전과 허가의 상태를 구축하는 데 쓰였을 것이며, 그것은 국가만이 만들 수 있는 것입니다.
다만, 구조적으로 한 가지만 말할 수 있습니다. 겐나이는 입구입니다. 직원은 채팅 창구로 가서 질문하고, 답을 복사하여 자신의 Excel로 돌아옵니다. 즉, 44억 엔을 들여도 복사해서 붙여넣는(Copy-paste) 운반책은 여전히 남아 있다는 뜻입니다. 업무가 실제로 일어나는 장소인──Excel 내부에는──AI가 아직 살고 있지 않습니다.
그 마지막 한 걸음을 현장 측에서 단 9줄로 연결한 것이 이번 이야기입니다. 국가의 시도와 경쟁하는 이야기가 아닙니다. 입구, 그 너머의 이야기입니다.
게다가 비용 구조가 반대입니다. 국가는 종량제의 전체상을 파악하지 못하고 있지만, 이쪽은 월정액 계약 범위 내에서 1회 왕복당 수백 토큰 정도의 작은 작업을 돌릴 뿐입니다. 배포물에 API 키나 비밀 정보도 포함되지 않습니다. 국가의 고민 바로 옆에 현장의 답이 있다──저는 그런 대비라고 생각합니다.
또 하나, 솔직하게 써두고 싶은 것이 있습니다. 이번 버튼, 즉 배관(Plumbing) 코드만 본다면 누구나 금방 흉내 낼 수 있습니다. 실험은 9줄이었습니다.
하지만 이 버튼이 도구로서 성립하고 있는 이유는 배관 때문이 아닙니다. 그 아래에 10년 된 토대가 있기 때문입니다.
하나는 秀.xlsm──10년 동안 키워온 매크로 관리 체계입니다. 표준 모듈에 Sub를 두는 것만으로 메뉴에 나열됩니다. 매크로를 목록에서 선택할 수 있습니다. 이름으로 판정하여 교체합니다. 망가뜨리기 전에 대피시키고, 복원으로 되돌릴 수 있습니다. AI의 답변이라는 "누가 썼는지 알 수 없는 코드"를 안전하게 받아낼 수 있는 것은, 이러한 관리 방식이 먼저 갖춰져 있었기 때문입니다. 토대가 없는 곳에 AI의 답변을 놓아봤자, 앉을 의자가 없습니다.
또 하나는 파일목록.xlsm──마찬가지로 10년 동안 키워온 파일 관리 체계입니다. 이번 기사에서는 조연이지만, 아까 쓴 "워크북과 대화하는 Excel"의 토대는 이것입니다. 어떤 워크북이 어디에 있는지 도구가 알고 있는 상태와 AI가 결합되었을 때, 다음 단계의 무언가가 일어납니다.
전반부에 썼던 의문──9줄이면 되는데 왜 아무도 하지 않는가──에 대한 답은 아마 여기에 있을 것입니다. 배관을 깔 수 있는 사람은 얼마든지 있습니다. 하지만 AI의 답변을 받아낼 수 있는 관리 토대를 Excel 내부에 가지고 있는 사람은 거의 없습니다. 토대를 가진 사람과 배관을 깔 수 있는 사람이 동일 인물인 경우는 매우 드뭅니다.
즉, 이 이야기의 교훈은 "AI가 대단하다"가 아닙니다. 자신만의 관리 체계를 가진 사람에게 AI가 가장 잘 듣는다는 것입니다. 배관은 하룻밤 사이에 깔 수 있습니다. 효과를 본 것은 10년 치의 틀(Pattern)이었습니다.
솔직하게 적어둡니다.
Claude를 사용하는 경우: Claude Pro 이상의 계약 + Claude Code CLI 설치 및 로그인. API 키는 필요 없습니다 (이 점이 중요하며, 배포물에 비밀 정보를 전혀 넣지 않아도 됩니다).
Gemini를 사용하는 경우: Gemini CLI 설치 및 로그인. 무료 구간이 있습니다.
- Windows 데스크톱 버전 Excel (WScript.Shell을 사용하기 때문)
- 매크로 사용 가능 + "VBA 프로젝트 개체 모델에 대한 액세스 신뢰"를 켬
CLI를 설치하지 않는 분들에게는 지난번의 버튼 2개 방식이 그대로 남아 있습니다. 즉, 3단계 구성입니다.
- 아무것도 설치하지 않음: [복사] [치환]을 통해 무료 채팅 AI와 복사/붙여넣기 왕복
- Gemini CLI를 설치함: 버튼 자동화 (무료 구간)
- Claude Pro를 사용 중임: 버튼 자동화 (이 기사의 구성)
조사한 범위 내에서는 이러한 배관의 선행 사례가 몇 가지 있습니다.
- 신즈이(神髄) 씨의 기사 (앞서 언급): AI에게 VBA를 수정하게 하고 다시 쓰게 함. 단, PowerShell 주도 방식이며 사람이 클립보드로 옮기는 공정이 남음.
- 지아이클라우드(G-i Cloud) 씨의 기사: VBA → WScript.Shell → Gemini CLI. 배관은 동일함. 단, 용도는 셀의 Q&A.
https://note.com/gicloud/n/n253aa07300dc - 해외에서는 Claude Code의 리포지토리(Repository)에 "Excel과의 수동 복사/붙여넣기를 어떻게든 해결해 달라"는 요구가 나오고 있는 단계
즉, 배관을 판 사람과 수정까지 마친 사람은 각각 존재했습니다. "Excel의 버튼 하나로, AI가 북(Book) 자신의 매크로를 수정하고, 이름으로 교체하여, 그 자리에서 바로 실행할 수 있다"──이 순환(Loop)을 Excel 안에서 완결시킨 실물은, 제가 찾아본 범위 내에서는 발견되지 않았습니다.
양쪽에서 파 내려가던 터널이, 현장의 Excel 안에서 연결되었습니다. 제 실감은 그에 가깝습니다.
기술적인 이야기로 써왔지만, 사실 이것은 현장의 이야기입니다.
퇴사한 사람이 남긴 망가진 매크로 앞에서 굳어 있는 젊은 직원. 긴 수식의 의미를 모른 채 인계받은 담당자. 프로그래밍과는 무관하다고 생각하는 사람들.
이 폼(Form)에서 그들이 하는 일은 "선택하고, 선택하고, 누르는 것"입니다. 일본어 콤보 박스에서 "고속화해줘"를 선택하는 사람은, 자신이 프로그래밍을 하고 있다고 생각하지 않을 것입니다. 하지만 하고 있는 일은 AI에게 코드를 쓰게 하여 자신의 북(Book)을 고치는 행위입니다.
수식이 "프로그래밍이라 불리지 않는 프로그래밍"으로서 수억 명에게 전달되었던 것과 같은 길을, 매크로도 걸을 수 있지 않을까. 그렇게 생각합니다.
秀.xlsm은 GitHub에서 공개하고 있습니다. 다만, 이번 AI 매크로 폼이 포함된 버전은 아직 포함되지 않았습니다. 실물은 아직 개선하고 싶은 부분이 남아 있어, 공개는 형태가 잡힌 후에 하겠습니다.
1년 전, 신(神)의 기사 너머에 무엇이 있는지 모른 채, 조금 걸렸다는 이유만으로 되돌아갔습니다.
지금은 그 기사 너머에 무엇이 있었는지, 자신의 Excel 안에서 매일 보고 있습니다. 답은 거대한 시스템이 아니라, 매크로 목록 폼의 맨 아래에 있는 작은 버튼 하나였습니다.
그리고 이 버튼은 시작에 불과합니다. 매크로가 고쳐지는 것은, 막 통과한 토관에 흐른 첫 번째 한 방울입니다. 다음은 수식, 그다음은 시트. Excel과 AI 사이의 운반책을 하나씩 없애 나갈 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기