
VBA 매니저 개발 1년, Excel 속에 거주하는 에이전트 1호기를 만든 이야기
요약
VBA 매니저 개발 1주년을 맞아, AI가 Excel VBA 코드를 직접 조작하고 실행할 수 있는 'Excel 거주형 에이전트'로 진화한 과정을 회고합니다. Google Apps Script의 개발 경험을 바탕으로 VBA의 폐쇄성을 극복하고 AI 중심의 개발 환경을 구축한 기록입니다.
핵심 포인트
- VBA의 블랙박스 문제를 AI를 통한 코드 읽기/수정/설명으로 해결 시도
- GAS의 clasp와 유사한 개발 경험을 VBA 환경에 구현
- AI가 주체가 되어 매크로를 취득, 치환, 실행하는 에이전트 구조 완성
- 단순 도구에서 Excel 통합 문서와 상호작용하는 에이전트로 진화
지난 8월에 「AI로 Excel VBA를 조작하는 도구」를 만들기 시작한 지 정확히 1년이 지났습니다.
조금 전 기사에서 파일 찾기의 3단계 구조(파일명 → 본문 → AI)에 대해 썼습니다.
다음은 「AI 요약 설명」을 예고하고 있습니다만, 그전에 한 편만 더 끼워 넣겠습니다. 이번에는 절차도 코드도 나오지 않습니다. 1주년의 기점으로, 지난 1년 동안 무엇이 일어났는지 한 번만 되돌아보고 싶기 때문입니다.
왜냐하면, 되돌아보니 생각했던 것보다 큰 이야기가 되어 있었기 때문입니다. 책상 위에서 일어난 일과 세상에서 일어난 일이 같은 방향을 향하고 있었습니다.
- 1년 전, AI와의 대화로 VBA를 넣고 빼는 도구인 「VBA 매니저」를 만들기 시작했습니다. 계기는 의외로 Google의 세계(GAS)입니다.
- 1년에 걸쳐, 매크로를 넣고 빼는 도구는 「열려 있는 통합 문서에 함께 올라타는 Excel 조종석」이 되었습니다.
- 올해 7월, 역방향 배선(Excel의 버튼에서 AI를 호출)이 연결되어 고리가 닫혔습니다. Excel 속에 거주하는 에이전트의 1호기입니다. - 같은 1년 동안, AI의 세계는 채팅에서 데스크톱 에이전트로 움직였고, 국가의 평가도 2018년의 「부채」론에서 반전되고 있습니다.
- 즉, 이것은 1년 전에 선택한 방향에 대한 정답 확인의 기록입니다. 마지막에 2호기 예고가 있습니다.
출발점부터 쓰겠습니다.
저는 오랫동안 Excel VBA로 여러 가지를 만들어 왔습니다. 그리고 오랫동안, 이런 말을 듣는 쪽이었습니다. 속인화(属人化, 특정 개인에게 의존함). 블랙박스. 만든 본인밖에 모르기 때문에 위험하다──.
개인적인 감상이 아닙니다. 국가도 공식 문서에서 그렇게 말했습니다. 경산성(경제산업성)이 2018년에 낸 DX 리포트(이른바 「2025년의 절벽」)는 기존 시스템의 복잡화·노후화·블랙박스화를 기술적 부채라고 단정 지었으며, 방치할 경우 경제 손실은 최대 연간 12조 엔에 달한다는 숫자까지 제시했습니다. 속인(属人) Excel은 줄곧 이 문맥 속에서 이야기되어 왔습니다.
말하는 내용의 핵심을 분해하면 결국 한 점입니다. 만든 본인밖에 읽을 수 없다. 본인밖에 고칠 수 없다.
그렇다면, 이라고 생각했습니다. AI가 코드를 읽을 수 있고, 설명할 수 있고, 고칠 수 있게 된다면 이 비판은 어떻게 될까.
그것이 1년 전의 출발점이었습니다.
계기는 Excel 밖에 있었습니다. Google의 세계입니다.
Google Apps Script (GAS)를 만지던 시기가 있습니다. 그쪽에는 clasp라는 공식 도구가 있어서, 수중에 있는 에디터에서 코드를 쓰고 커맨드 한 번으로 클라우드 측에 반영할 수 있습니다. 브라우저 에디터에 코드를 복사해서 붙여넣을 필요가 없습니다. 직접 써보니 그것이 당연한 개발 경험으로서 그곳에 있었습니다.
그래서 생각했습니다. 이런 것이 가능하다면 Excel의 VBA로도 할 수 있지 않을까?
하지만 VBA의 세계에는 그에 상응하는 물건이 없었습니다. VBE는 닫힌 상자이며, 코드를 파일로서 넣고 빼는 발상 자체가 거의 존재하지 않습니다. 없다면 만들면 됩니다. COM을 경유하여, 지금 열려 있는 통합 문서의 매크로에 직접 손이 닿는 도구── 그것이 작년 8월에 만들기 시작한 VBA 매니저(GitHub에서 공개 중)입니다.
말하자면 「VBA 버전 clasp의 자작」입니다. 다만 한 가지, 원조와 다른 점이 있습니다. 코드를 누르는 주체가 인간이 아니라 AI라는 점입니다. 저는 AI와 대화합니다. AI가 이 도구를 사용하여 통합 문서의 매크로를 넣고 뺍니다. 저의 역할은 지휘자입니다.
VBA를 금지하는 쪽인 Google의 세계에서 배운 개발 경험이, VBA를 연명시키는 도구의 설계도가 되었습니다. 지금 생각해보면 그 우회로가 최고의 밑천이었습니다.
연표 형식으로 정리해 두겠습니다.
2025년 8월: 개발 개시. AI와의 대화로 매크로를 취득·치환·실행하는, 그뿐인 도구 -
가을~겨울: 매크로 옆에 있는 것들로 손이 뻗어나감. 시트, 테이블, 피벗, UserForm, 도형. "매크로를 고치려면 시트도 읽지 못하면 말이 안 된다"는 상황의 연속으로, 수비 범위가 저절로 넓어짐 -
2026년 초여름: 철저한 총점검을 두 번 실시. 구멍을 메우고, 본체를 분할하며, 도구로서 안착함 -
2026년 7월: MCP 서버화. AI로부터의 조작이 체감 밀리초 단위가 되어, 대화 속도로 Excel이 움직임. 커맨드는 어느덧 75개에 달함 -
설계 방침은 처음부터 하나뿐이었습니다. 열려 있는 통합 문서(Workbook)에 그대로 올라타는 것. 파일을 닫고 다시 여는 방식은 작업 흐름을 끊기 때문에 채택하지 않았습니다. 인간이 작업하고 있는 Excel 안에 AI가 동석한다. 나중에 돌이켜보니, 이 한 점이 모든 복선이었습니다.
만들고 있던 본인으로서는 눈앞의 불편함을 하나씩 해결해 나갔을 뿐입니다. 정신을 차려보니 매크로를 넣고 빼는 도구는 'Excel의 조종석'이 되어 있었습니다.
그리고 올해 7월, 배선이 하나 늘었습니다. 역방향 배선입니다.
그전까지의 1년은 'AI → Excel'의 일방통행이었습니다. AI가 매크로를 쓰고, 수정하고, 실행합니다. 7월에 만든 것은 'Excel → AI'입니다. 매크로 목록 폼의 [AI 수정] 버튼을 누르면, VBA가 백그라운드에서 Claude Code를 호출하고, 수정된 코드가 돌아오면 이름 판정(Name判定)을 통해 교체됩니다. 채팅 화면은 한 번도 열지 않습니다. 실측 8초. 이 경위는 이전에 작성했습니다.
AI가 매크로를 쓰고, 매크로가 AI를 부른다. 이 고리가 닫혔을 때, 손에 쥐고 있는 것의 명칭이 바뀌었다는 느낌이 들었습니다.
에이전트(Agent)라는 말의 내용은 분해하면 세 가지입니다. 판단하는 머리. 사용할 수 있는 도구. 돌아가는 루프(Loop). 머리는 AI가 가져왔습니다. 루프는 7월의 배선으로 닫았습니다. 그렇다면 도구는? ── 오랜 세월 쌓아온 매크로들입니다. 표준 모듈에 Sub를 두면 메뉴에 나열되는 구조 위에, 업무 절차를 각인시킨 매크로들이 나열되어 있습니다. AI 입장에서 보면, 이것은 실행 가능한 도구의 카탈로그입니다.
세상은 지금 에이전트에게 부여할 도구를 새로 쓰기 시작한 단계입니다. 이쪽은 순서가 반대였습니다. 도구 상자가 먼저, 수년에 걸쳐 만들어져 있었습니다. 지난 1년 동안 한 일의 정체는, 머리와 도구 상자를 잇는 배선 공사였다고 생각합니다.
그래서 도구가 아니라 이렇게 부르기로 했습니다. Excel 속에 사는 에이전트의, 1호기입니다.
Copilot이나 Claude for Excel 등, 대형 기업의 Excel용 AI도 차례차례 나오고 있습니다. 저쪽이 뒤처진다는 이야기가 아닙니다. 성격이 근본적으로 다릅니다.
저쪽은 만인을 위해 만들어진, 시트 위의 손님입니다. 누구의 Excel도 망가뜨리지 않는 것이 제일이기에, 깊은 곳까지 손을 댈 수 없습니다 (Claude for Excel이 매크로에 손을 댈 수 없다는 이야기는 이전에 쓴 대로입니다).
자작 에이전트는 집주인입니다. 자신의 스타일을 그대로 사양(Specification)으로 각인할 수 있습니다. 매크로는 하나로 완결시킨다. 성공했을 때는 침묵한다. 망가뜨리기 전에 백업을 하고, 복구 버튼으로 한 번에 되돌린다. 위험한 조작은 실행하기 전에 대상을 확인한다── 이 작법은 오랜 실패를 통해 몸에 밴, 저만의 규칙입니다. 기성품은 저의 규칙을 모르며, 실을 곳도 없습니다.
여기서 깨닫는 것이 있습니다. '속인화(属人化)'라고 불려왔던 것── 개인에게 배어 있는, 그 사람만의 방식──은 에이전트를 직접 만드는 사람에게는 그대로 설계도가 됩니다. 비판의 대상이었던 속인성이 기성품은 흉내 낼 수 없는 차별화의 원천으로 변합니다. 1년 전에는 생각지도 못했던 역전입니다.
여기서부터는 책상 밖의 이야기입니다.
지난 1년 동안 AI의 사용 방식의 주류가 바뀌었습니다. 브라우저의 채팅창에 인간이 찾아가서 답을 복사하여 가져오는 방식에서, AI 에이전트가 데스크톱으로 내려와 손에 든 파일이나 앱을 직접 조작하는 방식으로. Claude Code가 바로 그것입니다.
왜 그렇게 되었는가. 답은 단순하다고 생각합니다. 업무의 실체는 손에 있기 때문입니다. 데이터도, 도구도, 오랜 세월 쌓아온 자산도 전부 로컬(Local)에 있습니다. 그래서 AI 쪽이 손안으로 온 것입니다.
돌이켜보면, COM을 경유하여 열려 있는 Excel을 AI가 조종하게 만든 작년 8월의 선택은, 용어가 유행하기 전의 '데스크톱 AI 에이전트'였습니다. 흐름을 탄 것이 아닙니다. 흐름이 나중에 따라온 것입니다.
혼자서 움직이다 보면 '이 길이 맞나'라고 생각되는 순간은 반드시 있습니다. 1년 차인 지금, 업계 전체가 같은 논리로 같은 방향을 향해 움직이고 있습니다. 정답을 맞히는 과정(答え合わせ)으로서 이보다 더 좋은 것은 없습니다.
정답 확인은 하나 더 있습니다. 국가입니다.
2018년, 경산성(경제산업성)은 블랙박스화를 부채라고 불렀습니다. 서두에 쓴 대로입니다. 그런데 2026년, 문예춘추PLUS의 관료 대담(전편·후편)에서는 경산성의 디지털 정책을 담당해 온 사람들이 현장 고유의 맥락이야말로 보물이라는 방향의 이야기를 하고 있습니다.
7년 전에 부채라고 불렸던 것이, 보물이라 불리기 시작하고 있습니다.
여기서 주의해야 할 점은, 현장의 북(Book)은 단 한 줄도 바뀌지 않았다는 것입니다. 2018년에 부채라고 불렸던 것과, 지금 보물이라 불리고 있는 것은 같은 것입니다. 바뀐 것은 북이 아니라, 읽는 이가 있느냐 없느냐입니다. AI라는 읽는 이가 나타난 순간, 가격표가 다시 붙었습니다. 회계 용어로 말하자면 재평가(Revaluation)입니다.
앞서 "블랙박스라고 불렸던 상자는 이제 열린다"라고 썼습니다. 이번 회고에서 덧붙이자면 다음과 같습니다. 열린 상자 안에서 나온 것은 부채가 아니라, 수년 분량의 업무 지식과 에이전트(Agent)의 도구 상자였습니다.
그런데, 그 대담이 실려 있는 문예춘추PLUS(文藝春秋PLUS)라는 채널은 이번 7월부터 서적 편집자인 쿠로이와 리나(黒岩里奈) 씨(리나쿠로 씨)가 새로운 MC로 합류하면서 주목도가 높아지고 있습니다 (공식 발표). 팀 미라이(チームみらい)의 당수 안노 다카히로(安野貴博) 씨의 부인입니다.
그 안노 씨의 원점이 초등학생 시절 Excel의 수식에서 도달하게 된 VBA였다는 이야기는 이전에 썼습니다. 올해 7월 국회에서는 그 안노 의원이 거버먼트 AI(Government AI) '겐나이(源内)'의 토큰(Token) 비용에 대해 질의하고 있습니다. VBA로 입문한 사람이 국회에서 AI의 비용 구조를 묻는 입장에 서 있는 것입니다.
국가의 설계도를 논하는 대담과, 그것을 실어 나르는 채널, 그리고 AI 실무를 묻는 의원. 별개로 보였던 등장인물들이 지난 1년 동안 상당히 가까운 곳으로 모여들었습니다. 그리고 그들 모두의 이야기가 책상 위의 Excel과 어딘가로 연결되어 있습니다. 입구로서의 VBA는 아직 현역은커녕, 출연진이 모두 갖춰지기 시작했다──그렇게 느끼고 있습니다.
늘 그렇듯, 분류를 해두겠습니다.
사실: VBA 매니저 개발 시작이 2025년 8월이며, 이 1년의 경과가 본 연재의 각 기사에 남아 있다는 것. [AI 수정] 버튼의 실측 8초. DX 리포트 2018의 원문(블랙박스화·기술적 부채·연간 최대 12조 엔). 대담 영상의 존재. 쿠로이와 씨의 MC 취임이 공식 발표되었다는 것. 안노 씨의 원점과 국회 질의가 공개 정보로 확인된다는 것.
견해: 지난 1년 동안 책상 위에서 일어난 일과 데스크톱 에이전트(Desktop Agent)로 향하는 업계의 조류가 "같은 논리의 같은 형태"라는 것. 개인의 역량(属人性)이 자산으로 변하는 역전 현상이 앞으로 상식이 되어갈 것이라는 점.
견해에 대한 확인은 다시 1년 뒤에 하겠습니다.
1년 전, 개인화(属人化)라고 불리던 쪽에서 반신반의하며 만들기 시작한 도구였습니다.
1년이 지나보니 도구는 조종석이 되었고, 배선은 연결 고리가 되었으며, 이름은 에이전트가 되었습니다. 그리고 세상의 AI는 손안으로 내려왔고, 국가의 평가는 반전되기 시작했습니다. 서로 다른 장소들이 같은 방향을 향하고 있었습니다.
1호기라고 부르는 만큼, 2호기의 구상도 있습니다. 힌트만 남겨두자면──지금의 1호기는 아직 로컬(Local) 안에서 완결되어 있습니다. 인터넷 너머에 있는 데이터를 API로 손안의 시트로 끌어와서, 저장하고, 처리하는 것. 그 "스프레드시트로 전부 다 한다"의 범위를 책상 밖까지 넓히는 이야기입니다. 형태가 갖춰지면 다시 쓰겠습니다.
방향은 틀리지 않았습니다. 그것을 알 수 있었던 것만으로도 좋은 한 해였습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기