はじめに
前回はこう書いて締めました。「満点が並んだら、まず、お題を疑うことにします。」
その夜のうちに、道具を GitHub に置きました。名前は「秀エクセルマネージャー」です。
ZIP でダウンロード:最新版
先に、はっきり書いておきます。これは開発中のものです。完成品ではありません。
私が家で、自分のブックを相手に使っているものを、手元の姿のまま出しました。昨日まで直していて、明日も直します。版は 0.1 で、仕様は予告なく変わります。私の一台では動いていますが、まだ見つかっていない間違いも、あると思って読んでください。大事なブックで試すときは、先に控えを取ってください。
それでも出したのは、前回の記事に書ききれなかったことがあるからです。
前回は、三日間の出来事を順番に書きました。回路を作った。お題で鍛えた。二十七本が丸暗記だった。六十七本になった。書き終えてから、読み返して思いました。出来事は書いたけれど、何が出来上がったのかを、書いていない。
出来上がったのは、回した分だけ、AI の要らない仕事が増えていく道具です。そして、それが出来たのは、この四か月で作ってきた土台があったからでした。私は、これはかなり画期的なことだと思っています。文章で説明するより、触れる形で置いておくほうが早い。そのための公開です。
TL;DR
- 「秀VBAマネージャー」を「秀エクセルマネージャー」に改めて、開発中のものをそのまま GitHub に出しました。前の公開版は、九月五日の姿のまま残してあります
- 入っているのは三つです。道具の本体と AI エージェントの部分(Python・五十三本)、アドイン「秀コンボ」(VBA だけで動きます)、鍛えて登録したマクロ「表の整理」(六十九本。回路で鍛えた六十七本と、その前からある二本)
- 土台は、四か月かけて作った足場です。AI が、実物の Excel の中で、VBA を入れて、コンパイルして、撃って、結果を読み戻して、だめなら戻せる。 Antigravity の Gemini に読ませたら、この土台を四つの柱に分けて評価してきました
- その土台の上に、九月、回路が載りました。AI がやった仕事を AI がマクロに書き、道具が正解の付いたお題で確かめ、合格したら登録する。次に同じ依頼が来たら、AI は呼ばれません。 揺れるものを、揺れないものに変えていく回路です
- Gemini は、土台は見抜きましたが、この回路には一言も触れませんでした。上に載ったものの新しさは、こちらが言葉にしないと伝わらない。 それがこの記事を書いた理由です
- 公開した夜、Gemini に道具をつないでダッシュボードを作らせました。一手ずつ撃って二百九十八秒・道具五十二回。マクロ一本に書かせたら、書いて通すまで百五十九秒、次からは約一秒で AI は要りません。 途中で道具の関所が文字化けを止め、実行時エラーを窓を出さずに受けています
- 同じことをしている例があるか、調べました。部品ごとの先行例はあります。全部をつないだものは、私が調べた範囲では見つかりませんでした
- 使うには、要るものが三つあります。 Windows 版の Excel と Python。Excel の設定を一つ(VBA プロジェクトへのアクセスを信頼する)。そして、手を動かす AI(Claude Code など、MCP で道具につなげるもの)。この道具は AI の手であって、AI そのものではありません。アドインだけなら、Excel だけで動きます
- くり返しますが、開発中です。お題の作り手はまだ入れていません。アドインの中の AI の窓も、この版では省いています
名前を変えました
五月に「会話するだけでマクロが直る」という記事を書いて、この連載を始めました。道具の名前は、VBAマネージャーでした。
名前のとおり、最初は VBA のマクロを取り出して、直して、戻す道具でした。それが四か月のあいだに、シートを読む、表を整える、グラフやピボットやパワークエリを作る、フォームを組む、閉じたブックの中を読む、と広がりました。九月に入ってからは、AI エージェントの部分がいちばん大きくなっています。もう VBA だけの道具ではありません。
それで、名前を改めました。秀エクセルマネージャーです。MCP サーバーの名前も、vba-manager から excel-manager に変えました。
正直に書くと、変えたのは看板だけです。ファイルの名前は vba_manager.py のままですし、道具を呼ぶ名前も vba("…") のままです。中身を先に出すことを優先しました。開発中というのは、そういう意味でもあります。
前の公開版(秀VBAマネージャー)は、九月五日の姿で止めて、そのまま残してあります。
入っているもの
| 中身 | |
|---|---|
| 道具の本体 | マクロの取得と置換、シートの読み書き、表の仕上げ、グラフ・ピボット・パワークエリ、フォーム、閉じたブックを読む手。コマンドラインからも、MCP サーバー(excel-manager)としても使えます |
| AI エージェントの部分 | 依頼文を一つ渡すと、道具が材料を集め、AI に聞き、書き、読み戻し、検査まで回します。マクロの先撃ち、鍛える回路、修理の試験、正解つきの試験も、ここに入っています |
| アドイン「秀コンボ」 | VBA だけで動きます。AI も Python も API キーも要りません。 マクロを一覧から選んで撃つフォーム、ショートカットの管理、ワークシートの一覧、プリンタの切り替え、カレンダーなど二十のフォームと、下の「表の整理」が入っています |
| マクロ「表の整理」 | 六十九本。回路で鍛えて登録した六十七本と、回路の前からある二本(表を整える・重複行を消す)です。表を整える、重複行を消す、合計行を足す、帳票を一覧に直す、月次の集計表を作る、二つの一覧を突き合わせる、グラフやピボットを作る、など |
| 機械の試験 | Excel も AI も使わずに回る試験が七百七十一本 |
道具が鍛える側で、アドインが回す側です。依頼が来ると、道具の入口は、開いているブックやアドインの中の「表の整理」を読みます。マクロの頭に書いてある「依頼の語」に当たるものがあれば、AI より先にそれを撃ちます。アドインだけを入れた場合でも、マクロは一覧から人の手で撃てます。
土台 ── 四か月で出来た足場
順番に説明します。まず、土台のほうです。
AI に Excel の仕事を任せるとき、いちばん難しいのは、賢さではありませんでした。実物の Excel の中で、安全に手を動かさせることです。VBA を入れる。コンパイルする。撃つ。結果を読み戻す。だめなら戻す。人なら VBE の画面でやることを、AI が外から、壊さずにやれる足場が要ります。この連載の四か月は、ほとんどその足場を作る話でした。事故を一つ起こしては、一つ潰す、のくり返しです。
公開に切り替える直前、この道具一式を、Antigravity の Gemini に読ませてみました。評価してください、と頼んだのです。Gemini は、土台を四つの柱に分けて返してきました。私の言葉に直すと、こうです。
一つ目。通信線と Excel のつなぎ方を守っている。 MCP サーバーは、標準出力が AI との通信線です。道具が一行でも余計な文字を出すと、会話が壊れます。道具の出力は全部捕まえて、結果としてだけ返す。Excel とのつながりは、使い終わって五秒で手放す。握ったままにすると、人が×で閉じた Excel が、見えないまま残るからです。七月に実際にそうなって、遅さの犯人を挙げた回のころに決めた秒数です。サーバーは通常のデスクトップに常駐して、人が開いている Excel に相乗りします。AI の端末から直接 Excel を触ろうとすると、別のデスクトップに隔てられて届かない。これも七月に、物証で確かめた壁でした。
二つ目。AI の「できました」を信じない。 AI は、値が合っただけで完了と言います。半分やって完了と言うこともあります。だから、完了の前に関所を置きました。罫線、列幅、### になったセル、見出し。お金のかからない Python の検査が先で、AI の採点はその後です。書く前の姿は控えに取り、変わったセルは前と後を道具が記録します。気に入らなければ、戻せます。
三つ目。VBA の資産を壊さない。 マクロはプロシージャの単位で差し替えます。モジュールごと入れ替えると、ショートカットキーの登録が消えるからです。閉じたブックの中は、Excel を開かずに読みます。
四つ目。大きなブックで回し続けている。 私のふだん使いのアドインは、三十六のモジュールに七百四十八本のマクロが入っています。この三日間だけでも何十回と手を入れましたが、公開した日の健康診断で、呼び先の無いマクロも、切れた参照も、ゼロでした。
Gemini の総括は、こうでした。
AI には判断と JSON だけを出力させ、危険な操作の排除・実機の検証・見た目の仕上げ検査・差分記録はすべて泥臭く堅牢な Python/MCP ツール側が物理的に担保する
これは、私が最初からやりたかったことそのものです。読ませただけの、よその AI が、そこを言い当ててきました。土台のほうは、伝わる形になっているようです。
褒め言葉のほうは、割り引いて読んでいます。前回書いたとおり、この三日間だけでも Excel は一度落ちましたし、裏の命令が三十二分固まったこともあります。よく出来た土台であって、完璧な土台ではありません。
その上に載ったもの ── 回した分だけ、AI の要らない仕事が増える
Gemini の評価を、道具を一緒に作っている Claude Code に見せました。Claude Code の返事は、こうでした。挙げている中身は当たっている。ただ、いちばん大事な所が抜けている。
Gemini が評価したのは、土台だけでした。その上に載ったものには、一言も触れていなかったのです。
載ったものは、九月十二日の記事に書いた回路です。
- 依頼が来たら、登録済みのマクロが先に撃つ。AI は呼ばない。一秒前後で終わる
- マクロで片付かない仕事だけ、AI がその場でやる
- AI がやった仕事を、AI 自身がマクロに書く
- 道具が、正解の付いたお題でそのマクロを試す。値だけでなく、数か日付か文字かの型、グラフ、ピボット、テーブル、クエリの姿まで比べる。外れは理由を付けて AI に返し、同じ外れが続いたら、道具が止める
- 合格したマクロを登録する。次からは、その仕事もマクロが片付ける
その時点では、3 から 5 は、私と AI が会話で回していました。九月十七日に、これが命令一本になりました。最初の一周は、合計の行を足すマクロです。AI 二往復、二十二秒で打ち上がりました。登録したあと、同じ依頼をもう一度撃つと、AI 零回、〇・六五秒でした。
AI の返事は、毎回揺れます。登録したマクロは、揺れません。 この回路は、揺れるものを、揺れないものに変えていきます。ふつう、AI エージェントを長く回せば回すほど、その先もずっと AI を使い続ける形になります。こちらは逆です。回した分だけ、AI の要らない仕事が増えていきます。 育っていくのは、AI ではありません。マクロの棚のほうです。
棚の実物が、これです。ふだん使っているアドインの、マクロの一覧です。「表を整える」から下に並んでいるのが、AI が打って、お題に合格して、登録されたマクロです。誰もメニューを編集していません。 このアドインは、モジュールの中のマクロを自分で読んで一覧に出す作りなので、登録された瞬間に、ここに並びます。次からは、人がここで選んで「実行」を押すだけです。検索も、編集も、削除も、復元も、人の手でできます。
マクロの修理にも、同じ形の試験があります。合格済みのマクロを、Python が一行だけ壊す。人の言い方の症状で、AI に直させる。全部の表で確かめる。直っていないのに「直りました」と言った回を、嘘の完了として数える。Gemini は、あとでこれをミューテーションテストと呼びました。コードをわざと壊して、試験の網の目を確かめる手法の名前です。たしかに似ています。ただ、向きが違います。ふつうのそれが試すのは、試験の側です。こちらが試しているのは、直す AI の側です。
そして、この全部がそろった結果、AI が一人で回せる時間が延びました。前回の記事に数字を書いています。まる二日、四十七時間のうち三十七時間、会話を開いたまま。そのあいだの私の発言は八十八回で、AI が道具を撃った手は 4,378 手。いちばん長い所では、四時間半、私は一言も打っていません。合否を決めるのが人ではなく、正解の付いたお題だから、人が見ていなくても回ります。
ここで、土台の話に戻ります。これが成り立つのは、土台があるからです。 AI に何時間もマクロを書かせて、実物の Excel で撃たせ続ける。土台が無ければ、どこかで Excel が固まるか、ブックが壊れるか、AI が嘘の完了で止まります。見えない Excel で試す。六十秒で打ち切る。コンパイルを通してから撃つ。だめなら戻す。四か月ぶんの地味な足場が、そのまま、回路の下に敷いてあります。
家にたとえるなら、Gemini が見たのは土台でした。コンクリートの厚みと、鉄筋の入り方を見て、よく出来ていると言った。その上に何が建っているかは、見ていませんでした。無理もありません。土台は、図面を読めば分かります。上に建ったものが何のための家なのかは、住んでいる人が言わないと分かりません。
Claude Code の指摘を、そのまま Gemini に返しました。Gemini は認めて、回路のほうを自分の言葉で言い直してきました。言葉を足せば、伝わります。 だから、README とこの記事に、書いておくことにしました。
公開した夜に、もう一度 Gemini に使わせました
この記事の下書きを書き終えたあと、Antigravity の Gemini に、公開した道具をつないで、いろいろ試させました。
ダミーの表を作って、ピボットテーブルを。次にグラフを。次にスライサーを。グラフは頼んでから二十三秒、スライサーは二十一秒で出来ました。口で言うだけでスライサーが置かれるのは、かなり便利です。
それで、ダッシュボードを頼みました。Gemini は、タイトルを書く、太字にする、列幅を変える、枠を引く、と一手ずつ道具を撃ちました。道具を三十三回、百六十九秒。 しかも、出来上がったグラフとスライサーは重なっていました。配置がばらばらです、と言うと、直すのにまた十九回、百二十九秒かかりました。
遅いです、と言いました。Gemini の答えはこうでした。一手ごとに往復したからです。本来は、一連の処理を VBA のマクロ一本に書いて、実機で撃たせるべきでした。では、それでやってみてください、と言いました。
Gemini は百九十行のマクロを書きました。道具に渡すと、関所が止めました。 中の円記号が Shift-JIS に無い字で、このまま入れると文字化けします、と。直して入れ直して、コンパイルは通過。撃つと、実行時エラーで止まりました。Excel にエラーの窓は出ていません。道具が受けて、落ちた理由を返しています。Gemini が直して、もう一度コンパイルして、撃つ。通りました。マクロが走っていた時間は、約一秒です。
出来上がったのが、これです。上に数字のカードが三枚、左に集計表が二つ、右に棒グラフと円グラフ、下に絞り込みのスライサーが二つ。データは、Gemini がその場で作った架空の売上です。
正直に数字を並べます。
| やり方 | 一回目 | 二回目から |
|---|---|---|
| 一手ずつ道具を撃つ | 二百九十八秒・道具五十二回(作るのに百六十九秒、配置の直しに百二十九秒) | また同じだけかかります |
| マクロ一本に書いて撃つ | 百五十九秒・道具十五回(書く、関所で一度止まる、実行時エラーで一度止まる、通す) | 約一秒・AI は要りません |
一回目の速さは、大きくは変わりません。違うのは、二回目からです。
そこで、私は聞きました。これだと、エクセルマネージャーは関係ないのではないですか。動いているのは VBA です。
Gemini の答えは、逆でした。道具が無ければ、AI に言えるのは「このコードを VBE に貼って、F5 を押してください」までです。コードを Excel の中に入れたのも、文字化けを入れる前に止めたのも、外からコンパイルしたのも、実行時エラーを窓を出さずに受けたのも、撃ったのも、全部道具でした。
土台があって、その上でマクロが打たれて、次から一秒になる。 この記事に書いたことが、公開したその夜に、よその AI の手で、そのまま起きました。
同じことをしている人は、いるのでしょうか
私は、こんなことをやっている人はまだいないだろう、と思っています。ただ、思っているだけでは記事に書けません。Claude Code に、調べさせました。
部品ごとの先行例は、ありました。
- 正解つきの試験で、表計算の仕事を測る。 研究に SpreadsheetBench があります。Excel の相談の掲示板の実例をお題にして、AI の書いたコードを動かし、正解の表と比べます。しかも、一つのお題に、値の違う表を何枚も用意しています。答えを書き込んだコードを通さないためです。前回、私たちが痛い目を見てたどり着いた丸暗記の対策は、研究者の試験には、最初から入っていました。 ただ、書かせるのは Python で、比べるのは値です。測るための試験なので、合格したコードが道具として残ることはありません
- 検証に通ったコードを棚に溜めて、次から使い回す。 Voyager という研究が、これをゲームの Minecraft の中でやっています。構造としては、いちばん近いと思います
- 高い AI が道具を作り、あとは安く使う。 Large Language Models as Tool Makers という研究があります。作るのは一度、使うのは安く。考え方は同じです
- Excel の中で動く製品。 Copilot の Agent Mode も Claude for Excel も、私が調べた範囲では、毎回 AI がシートを操作する形です。終わったあとにマクロを残して、次から AI なしで回す、という機能は見当たりませんでした
見つからなかったのは、これを全部つないだものです。Excel と VBA の上で。お題を種の番号から量産して。合格したコードがマクロとしてアドインに入り。次の依頼は AI 零回で終わり。それを AI が一人で何時間も回す。
研究は、測るところで止まっています。製品は、毎回 AI がやる形です。理由は、九月十二日の記事に書いた檻だと思っています。VBA には檻がありません。メーカーは、自社の AI にそれを握らせません。だから、この場所は空いたままになっています。
考え方の発明ではありません。ただ、この場所で、この組み合わせを動かした例は、見つかりませんでした。
使ってみるには ── 要るものが三つあります
土台の節に、AI が実物の Excel の中で VBA を入れて、コンパイルして、撃って、読み戻して、戻せる、と書きました。ダウンロードした方も、同じことができます。 ただし、落としただけでは動きません。要るものが三つあります。
一つ目。環境。 Windows 版の Excel(デスクトップ版)と、Python です。Python を入れたら、落としたフォルダで pip install -r requirements.txt を一度実行して、必要な部品を入れます。
二つ目。Excel の設定を一つ。 Excel のオプション → トラスト センター → マクロの設定で、「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」を ON にします。道具が外から VBA に触るための入口です。ここが切れていると、マクロを読む手も、直す手も、全部動きません。
三つ目。手を動かす AI。 ここがいちばん大事です。この道具は、AI の手です。AI そのものではありません。 Claude Code や Antigravity のような、MCP という仕組みで道具につなげる AI が、別に要ります。つなぐと、AI が自分で、マクロを取り出して、直して、コンパイルして、撃って、結果を読む、をやるようになります。道具だけを落としても、手を動かす AI がいなければ、「会話するだけでマクロが直る」にはなりません。
AI がいなくても、人がコマンドを一行ずつ撃つことはできます。
py vba_manager.py list # 開いているブックのマクロの一覧
py vba_manager.py get マクロ名 # マクロを取り出す
py vba_manager.py compile # 全体をコンパイルして、落ちた行を名指しで出す
py vba_manager.py read-range A1:D10 # セルを読む
道具の本体(マクロの取得と置換、シートの読み書き、表の仕上げ)は、こうして AI なしで動きます。
API キーは要りません。 Claude Code や Antigravity につないでいれば、頭はその AI 自身です。依頼文を一つ渡して最後まで回す命令や、鍛える回路、修理の試験も、既定では道具が裏で Claude Code を呼ぶ作りなので、鍵は要りません。Gemini や Claude の API を直接使う道も残してありますが、そちらは使いたい方だけの選択肢です。
下の表に、どこまでやるのに何が要るかをまとめます。
| やりたいこと | 要るもの |
|---|---|
| アドインのマクロを、一覧から手で撃つ | Excel だけ(Python も AI も要りません) |
| コマンドでマクロを取り出す・直す・シートを読む | Excel + Python + Excel の設定 |
| 会話でマクロを直す・表を整える | 上に加えて、MCP につなげる AI(Claude Code など) |
| 依頼文を一つ渡して最後まで回す・マクロを鍛えて増やす | 上と同じ(道具が裏で Claude Code を呼びます。API キーは要りません) |
アドインだけ試す(Python は要りません)
秀コンボ.xlsm を直接ダウンロードして、開いて、「アドインの更新登録」のボタンを押します。アドイン(.xlam)として登録されて、どのブックからもマクロが呼べるようになります。私自身、GitHub に上げた版を落として、この手順で入れて確かめました。
道具を MCP サーバーとして登録する(Claude Code)
claude mcp add excel-manager --scope user -- py "<置いたフォルダの絶対パス>\作業ファイル\project\python_scripts\vba_mcp_server.py"
登録したら、Excel でブックを開いて、Claude Code に「マクロの一覧を見せて」と頼んでみてください。一覧が返ってくれば、つながっています。
Antigravity など、ほかの MCP クライアントでの登録のしかたは、README に書いてあります。対象は常に、いまアクティブに開いている Excel ブックです。特定のブックやパスには依存しません。
事実と見立ての仕分け
例によって仕分けます。
事実。 公開した物の数は、GitHub に上がった実物を取り直して数えました。道具が五十三本、手順書が六本、マクロの書き出しが一本、アドインが一冊。道具の五十三本は、私が手元で使っているものと比べて、五十本が一字も違わず、三本は試験用のメールアドレスの例と私のパソコンのパスを置き換えた所だけが違います。動きが変わる違いは、ありません。アドインは二十九モジュール・五百六十三本で、私がいま登録して使っているものと、コードが全部一致しています。元の私のアドインは三十六モジュール・七百四十八本で、そこから AI の窓にあたるフォームなどを省いたものです。機械の試験の七百七十一本は、公開用に写した先で回した結果です。二十二秒と〇・六五秒、四十七時間と三十七時間、八十八回と 4,378 手は、前回の記事と同じ記録です。Gemini の総括の一文は、Gemini の出力をそのまま引きました。
見立て。 「かなり画期的だと思っている」は、私の実感です。先行例の調べは、Claude Code が検索で当たった範囲で、研究は紹介と README を読んだだけです。論文の本体までは読んでいません。「全部をつないだものは見つからなかった」は、無いことの証明ではありません。Copilot と Claude for Excel の話も、比較記事で確かめた範囲です。「大手がここに来ないのは檻のせい」は、九月十二日の記事と同じく、私の見立てです。「Gemini は土台を見抜いたが、回路は見ていなかった」は、返ってきた文面からの読みで、Gemini がどこまで読んだのかを確かめたわけではありません。
正直な線引き
- 開発中です。 版は 0.1。仕様は変わります。動作の保証はありません。昨日まで直していたものを、そのまま出しています
- よその方のパソコンでは、まだ一度も動かしていません。 確かめたのは、私の一台(Python 3.14)で四か月動かしてきた、ということと、GitHub に上げたものを別の場所に展開して、そこから MCP サーバーが立ち上がり、道具を十二本返す、という所までです。Python や Excel の版が違う環境、フォルダの場所が違う環境で、つまずく所があるかもしれません
-
道具の側の粗も、その夜の記録に出ています。 Gemini が道具の引数を外して、使い方の説明が返るだけの往復が十一回ありました。ブックを開く手は、実際には開けていたのに、三十秒待って「確認できませんでした」と返しています。パスの区切りが
/のまま Excel のパスと比べていたのが原因でした。マクロを.xlsxのブックに入れたとき、道具は「保存しました」と言いますが、その形式ではマクロはファイルに残りません。三つとも、その夜のうちに直して、GitHub に上げました - AI は入っていません。 入っているのは、AI が使う道具と、VBA だけで動くアドインです。会話でマクロを直すには、Claude Code などの AI を、ご自分で用意してつなぐ必要があります
- お題の作り手は、まだ入れていません。 鍛える回路が使っている、正解つきの表を種の番号から作るスクリプト群です。鍛える回路そのものと、修理の試験、正解つきの試験の道具は入っていますが、私が三日間回した七十五型のお題は、整理してから足します
- アドインの中の AI の窓は、この版では省いています。 フォームの中から AI を呼ぶ部分です。試したい方は、お試し版の Excelコンボ をどうぞ
- 鍛えたマクロは、自分で作らせたお題に合格しただけです。 他人の実物のブックには、まだ一枚も当てていません。六十九本の大半は、私のふだんの作業でも、まだ撃っていません
- マクロで直した変更は、Ctrl+Z では戻りません。 道具の入口から撃てば控えが取られますが、アドインの一覧から直接撃ったときは、保存前に閉じて戻すしかありません
- 名前は、看板しか変わっていません。 ファイル名にも、道具を呼ぶ名前にも、前の名前が残っています
- Windows 版の Excel の話です
おわりに
五月に、会話するだけでマクロが直る、と書きました。四か月たって、頼んでおけばマクロが増えていく、という所まで来ました。
あいだにあったのは、土台を作る四か月です。AI が実物の Excel の中で、壊さずに手を動かせる足場。地味な足場ですが、よその AI に読ませても伝わるくらいには、形になりました。
その上に、回路が載りました。回した分だけ、AI の要らない仕事が増えていく。揺れるものが、揺れないものに変わっていく。私は、ここがいちばん大事だと思っています。
まだ途中です。土台も、上に建ったものも、明日また直します。
開発中のまま、置いておきます。




