
VBE를 열지 않고 매크로를 수정하기 ── AI 채팅과 버튼 2개로 끝내는 방법
요약
VBA 매크로 수정 시 발생하는 번거로운 복사·붙여넣기 과정을 자동화하는 Excel 폼 도구를 소개합니다. AI 채팅과 연동하여 버튼 클릭만으로 코드를 복사, 치환, 복원할 수 있어 VBE를 열지 않고도 효율적인 코드 수정이 가능합니다.
핵심 포인트
- VBE를 열지 않고 버튼만으로 매크로 코드 복사 및 치환 가능
- AI 채팅의 코드 블록(Code Fence)을 자동으로 인식하여 정교한 복사 지원
- 치환 전 코드를 메모리에 보관하여 실패 시 즉시 복원 기능 제공
- Sub/Function 이름을 기반으로 대상 매크로를 자동 판정하여 안전하게 교체
연재 타이틀은 「Excel VBA × Claude Code」입니다만, 이번에는 Claude Code가 거의 등장하지 않습니다.
필요한 것은 브라우저에서 작동하는 무료 AI 채팅과, Excel 폼에 달아둔 버튼 2개. 그것뿐입니다.
- 매크로의 간단한 수정은 「AI 채팅에 코드를 붙여넣고, 수정된 코드를 다시 붙여넣는 것」이 사실 가장 빠르다
- 그 복사·붙여넣기 왕복 과정을 Excel 폼의 버튼 2개(복사·치환)로 만들었다
- VBE는 열지 않는다. 새로운 매크로도 붙여넣기만 하면 늘어난다. 실패하면 복원으로 되돌린다
- 간단한 수정이라면 이것만으로 충분하다
지난번, 직접 만든 VBA 관리 툴이 느려진 범인을 108개의 대화 로그를 통해 입증했습니다.
그 과정에서 알게 된 사실 중 하나는, 수정에 걸리는 시간의 지배적인 요인은 도구의 처리 속도가 아니라 「코드를 얼마나 다시 타이핑하는가」라는 것이었습니다. 수백 줄의 툴을 경유하든, 순수하게 복사·붙여넣기를 하든, 결국 코드를 읽는 양과 쓰는 양에 의해 시간이 결정됩니다.
이 기준에서 주변을 둘러보니, 의외의 것이 빠른 쪽에 있었습니다.
순수한 AI 채팅입니다.
코드를 채팅에 붙여넣고 「이 부분을 고쳐줘」라고 부탁한 뒤, 돌아온 코드를 다시 붙여넣는다. 원시적으로 보이는 이 방법에는 불필요한 것이 전혀 들어있지 않습니다. 진단도 하지 않고, 환경도 구축하지 않으며, 그저 읽고 수정된 코드를 내놓을 뿐입니다. 그것뿐입니다.
API도 애드인(Add-in)도 MCP도 필요 없습니다. 브라우저의 무료 채팅이면 충분합니다.
그렇다면 무엇이 번거로운가. 바로 복사·붙여넣기 그 자체입니다.
- VBE를 연다
- 어느 모듈에 있는지 찾는다
- Sub의 시작부터 End Sub까지 신중하게 범위를 선택하여 복사한다
- 돌아온 코드로 원래 코드를 신중하게 선택하여 치환한다
수정하는 시간보다 이 왕복 수작업이 더 깁니다. 그렇다면 이 부분을 Excel 측에서 없애버리면 됩니다.
저의 애드인(秀.xlsm)에는 통합 문서 안의 매크로를 목록으로 나열하여 선택하고 실행할 수 있는 폼이 있습니다. 거기에 버튼을 2개 추가했습니다. **[복사]**와 **[치환]**입니다.
사용법은 다음과 같습니다.
- 목록에서 매크로를 선택하고
[복사]── 코드 전문이 클립보드에 들어갑니다. - AI 채팅에 붙여넣고 「이 부분을 고쳐줘」라고 부탁합니다. - 돌아온 코드를 복사하여
[치환]── 매크로가 교체됩니다.
이상입니다. VBE는 한 번도 열지 않습니다. 범위 선택도 하지 않습니다. 어느 모듈에 있는지도 알 필요가 없습니다 (복사는 모든 모듈을 가로질러 찾습니다).
수정이 실패했다면 **[복원]**으로 치환 전의 코드로 되돌릴 수 있습니다.
이 버튼 세트는 개인용 매크로 통합 문서(PERSONAL.XLSB)의 매크로 목록 폼에도 동일하게 추가했습니다. 매크로가 어느 통합 문서에 있더라도 수정 방법은 같습니다.
붙여넣기만 한다고는 해도, 모듈이 망가지는 것은 곤란하므로 내부에는 몇 가지 장치를 해두었습니다.
이름으로 판정합니다. 붙여넣은 코드의 Sub / Function 이름을 읽어 들여, 같은 이름의 매크로가 있으면 그것을 통째로 교체합니다. 「어떤 매크로를 수정할 것인가」는 코드 스스로가 알고 있다는 개념입니다.
형식을 검사합니다. 클립보드의 내용이 Sub / Function 형태가 아니라면 아무것도 하지 않고 중단합니다. 실수로 다른 문장을 복사한 채로 눌러도 모듈은 무사합니다.
코드 펜스(Code Fence)는 자동으로 제거합니다. AI 채팅의 답변은 코드가 ```로 둘러싸인 형태인 경우가 많습니다. 답변을 설명문과 함께 통째로 복사하더라도, 코드 블록 안의 내용만 골라내어 붙여넣습니다. 복사의 정교함조차 필요 없게 되었습니다.
치환 전의 코드는 대피시킵니다. 교체 직전에 원래 코드를 메모리에 보관해 두었다가, [복원] 버튼으로 단 한 번만 다시 쓸 수 있습니다 (Excel을 닫으면 사라지는, 깔끔하게 타협한 사양입니다).
같은 이름의 매크로를 찾지 못한 경우, [치환]은 추가 기능으로 작동합니다. 목록에서 선택 중인 매크로 바로 뒤에 새로운 매크로로서 삽입됩니다.
여기서 秀.xlsm의 오래된 메커니즘이 빛을 발합니다. 이 애드인은 「표준 모듈에 Sub를 두기만 하면 메뉴에 나열되는」 구조입니다. 즉, AI에게 「이런 매크로를 만들어줘」라고 요청하여 돌아온 코드를 [치환]으로 붙여넣으면, 그 순간 메뉴에 새로운 매크로가 나열되어 선택하고 실행할 수 있게 된다는 뜻입니다.
수정뿐만 아니라 만드는 과정도 「붙여넣기만 하면」 되게 되었습니다.
VBA의 개발 환경이 힘들다는 이야기는 예전부터 있었습니다. 세상의 해결책은 대체로 "더 나은 개발 환경으로 나가는" 방향입니다. 이전 기사에서도 소개했던 하루미(Harumi) 씨의 xlflow나 VBA용 언어 서버 (Language Server)는 VS Code에서 VBA를 제대로 된 소프트웨어로서 작성할 수 있게 해주는 걸작이며, 팀 개발이라면 그쪽이 정석이라고 생각합니다.
이번 방식은 그 반대로, 개발 환경 그 자체를 불필요하게 만드는 방향입니다. 코드를 작성하는 장소는 AI 채팅 쪽으로 옮겨가고, Excel 쪽은 "선택하고 누르기만 하는" 장소가 됩니다. 사용하는 사람에게 보이는 화면은 평소와 다름없는 Excel과, 평소와 다름없는 매크로 목록 폼뿐입니다.
AI가 주인공으로서 전면에 나서는 것이 아니라, Excel의 서포트 역할로서 뒤로 물러나는 것. 이 형태가 저에게는 가장 잘 맞습니다.
솔직하게 선을 그어 두겠습니다.
여러 매크로에 걸친 개수, 폼의 재구축, 시트의 내용까지 포함한 검토── 그러한 "북(Workbook) 전체를 봐주길 바라는" 작업은 이것만으로는 부족합니다. 저는 그런 작업은 Claude Code와 자체 제작 도구(vba_manager)로 하고 있습니다. 연재를 통해 계속 써온 것은 그쪽 이야기입니다.
다만, 일상적인 매크로 수정의 대부분은 "매크로 1개를 고치기", "매크로 1개를 만들어 추가하기"입니다. 그 부분에서는 이 버튼 2개가 최단 경로였습니다.
간단한 수정이라면, 이것만으로 충분합니다.
秀.xlsm은 GitHub에 공개되어 있습니다.
구조 자체는 작은 것이므로, 본인의 북 폼에 같은 방식으로 버튼을 추가할 수도 있을 것입니다. 내부 코드는 북 안에 그대로 들어 있습니다.
버튼을 누르면 AI 채팅이 답을 해준다── 여기까지 오면 다음 욕심이 생깁니다. 복사해서 붙여넣는(Copy-paste) 운반책 역할을 아직은 인간이 하고 있기 때문입니다.
제 손에는 Claude Code의 CLI가 있습니다. VBA에서 이것을 호출할 수 있다면, 운반책도 사라집니다. 버튼을 누르면 AI가 수정한 코드가 그대로 삽입됩니다. 구상은 커지고 있지만, 결과물이 완성된 후에 쓰겠습니다.
──라고, 여기까지 쓴 것이 며칠 전입니다. 참지 못하고 이 기사를 공개하기 전날 밤, 작은 실험을 했습니다. 자세한 내용은 다음에 쓰겠지만, 한 가지만 말씀드리자면.
VBA에서 AI를 호출하여 수정된 코드가 돌아오기까지, 실측 6초였습니다.
메커니즘이 작동한다는 것은 이미 확인했습니다. 다음에는 조금 큰 발표가 될지도 모르겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기