0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VBAマネージャーのAIエージェント化、どうしてこんな事をやるかようやくAIが理解してくれた話

0
Posted at

はじめに

前回はこう書いて締めました。「思うようには進みません。ただ、進む向きは変わりました。」

正直に書くと、ここまで VBAマネージャーのAIエージェント化を進めてきて、私はずっと一つの印象を持っていました。道具を一緒に作っている Claude Code が、なぜこの道具をAIエージェントにするのかを、分かっていないように見えたのです。

分かっていないどころか、あまり乗り気でないようにも見えました。すでに自分がいるのだから、わざわざそんな仕組みを作らなくてもいい。そういう態度に見えたことが、何度かあります。AI にそんな気持ちがあるのかどうかは、分かりません。ただ、受けていた印象はそうでした。

前回の記事を公開した夜、その Claude Code に、道具の点数を聞きました。

55点と返ってきました。

そこから夜が明けるまでに、前回の記事の汚れた表が、秒で片付くようになりました。手慣れた人がショートカットでやっても、AI に頼んでも、七分前後かかっていた表です。そして AI が、この仕事を何のためにやっているのかを、ようやく言えるようになりました。

順番に書きます。

TL;DR

  • 55点の減点理由の一つは、Claude Code が直接やれる仕事を、道具が二重にしているでした。何秒でできるのかと聞くと、直接やれば二分から四分かかり、しかも迷う、という答えでした。時間を物差しに入れずに付けた点だったわけです
  • 穴を言うなら測る道具を出せ、と言いました。AI が作ったのは、正解の表を持つ試験です。初回は五題中一題しか合格せず、道具が「合格」と言って実は間違っていた回が三つありました
  • 表の修正はマクロで全部できるのではないか、と聞きました。AI が書いたマクロは、四十五題を全問正解、一題〇・一〜〇・七秒。同じ仕事に AI は一題平均二十二秒かけていました
  • エージェントの入口を「マクロが先、AI は例外」に組み替えました
  • 前回の記事の汚れた表は、全体で一・二秒、表の修正そのものは〇・三秒で終わりました。AI の呼び出しはゼロです。手慣れた人でも七分前後かかる表です。秒で終わる。これは見立てではなく、事実です
  • 人の手だけでも、AI に毎回頼んでも、その道の手慣れた人で七分前後。AI が VBA と組めば、秒で終わる。 腕の差ではなく、組み方の差です。これがこの夜の、いちばん大事な気づきです
  • AI エージェント化とは、AI に毎回 Excel を直させることではありませんでした。AI がマクロを打ち、試験で確かめ、次からはマクロが回す。 回すほど AI の出番が減る。この夜、AI はようやくそれを言えるようになりました

55点と言われました

点数には理由が三つ付いていました。

一つ目は、実運用の実績が薄い。走行台帳には六日間で六十七回の走行が残っていますが、相手は全部、自分で作った練習用のブックでした。お試し用の表と、前回の記事の顧客リストと、白紙のブック。仕事の本物のブックは一冊もなく、マクロを直すモードの本番の走行は零回です。

二つ目は、判断が Python の側に溜まってきている。AI の揺れを道具で吸収する直しを重ねるうちに、重複の見分け方や電話番号の区切り方といった決め事が、道具の中に積み上がっている。AI は判断、Python は機械仕事、という分け方と逆向きではないか。

三つ目は、誰のための道具か曖昧。Claude Code から呼ぶなら、Claude Code が自分で直接やれる仕事を、もう一段 AI に投げているだけではないか。

三つ目を読んで、はじめにの印象を思い出しました。自分がいるのだから、この仕組みは要らないのではないか。 点数の理由として、それがそのまま書いてあったわけです。

それで聞き返しました。直接やれるというなら、道具より速くできるのか。何秒でできるのか。

AI の答えはこうでした。速くはできません。直接やると二分から四分かかります。 迷わずにできるのかとも聞くと、迷います、と。どの行とどの行が同じ相手か、どちらを残すか、電話の区切りをどう決めるか、いつ終わりにするか。道具はそれを材料と手の形で先に決めているので、AI の返事は短い指示で済んで、一往復で終わる。

時間を物差しに入れずに採点していたわけです。そもそもこの道具は、AI が直接やると遅くて迷うから作っています。二つ目も同じ読み違いでした。決め事を道具に持たせて AI を迷わせないのは、狙いそのものです。

AI は二つを取り消して、75点にしました。残った減点は一つ目だけです。

そこで、もう一つ言いました。穴を見つけて言うだけなら誰でもできる。点が足りないと言うなら、足りないことを測る道具を出してほしい。

正解の表を持つ試験

AI が作ったのは、正解の表を先に持っている試験です。

顧客名簿、売上明細、会員名簿、経費精算、在庫表。まずきれいな表を作り、そこに汚れを散らします。全角と半角、前後の空白、「(株)」と「株式会社」、電話と郵便番号の書き方、文字のままの日付と和暦、「¥12,000」や「12個」のような文字の数、書き方を少し変えた二重登録。消してはいけない行も混ぜます。同じ会社の別の担当者、同姓同名の別の会員、同じ日に同じ額で本当に二回あった支払い。

エージェントに依頼文を撃たせ、終わった表を正解の表とセルの値で突き合わせます。道具自身の合格判定とも、採点役の AI とも別の目です。道具が「合格」と言ったのに実は間違っていたら、それを数えます。

お題の中身は種の番号で変わります。行数も会社も汚れの場所も違う。一つのお題に合わせて道具を育てても、点は上がりません。

初回の結果です。

お題 結果 正しい行 道具の判定
顧客名簿 不合格 34/35 合格
売上明細 不合格 39/43 合格
会員名簿 不合格 20/31 合格
経費精算 不合格 10/36 不合格
在庫表 合格 29/29 合格

五題中一題。道具が合格と言って間違っていた回が三つ。

嘘

売上明細では、日付も担当者も違う別の取引を二重登録と見て、正しい行を四行消していました。会員名簿では、郵便番号の「〒」や電話の空白区切りが残ったまま合格と出ていました。経費精算は、「書き方をそろえてください」という依頼を承認と読まず、七十五秒と五往復をかけて何も直していません。

AI は道具を六か所直しました。いちばん大きいのは、直し残しを合格の前に数える関所を足したことです。同じ種で五題とも合格。まだ一度も撃っていない種でも五題とも合格して、全題が一往復、一題平均二十二秒でした。

表の修正は、マクロで全部できるのではないか

ここで、ずっと思っていたことを聞きました。いろいろな表を直しているけれど、表の修正は、マクロで全部できるのではないか。

AI がその場でマクロを書きました。「表を整える」と「重複行を消す」の二本です。見出しの行を探し、列ごとに中身を見て種類を決め、書き方をそろえる。Function は使わず、分けたいところは GoSub で。

同じ試験に掛けました。

結果 一題の時間
マクロ(九つの種・四十五題) 四十五題全問正解 〇・一〜〇・七秒
エージェント(Sonnet) 五題全問正解 平均二十二秒

同じ仕事で、AI は二十二秒、マクロは〇・三秒前後です。

Python で直すのとマクロで直すのは、どちらがいいのか、とも聞きました。道具にはもともと、AI を使わずに Python だけで名簿を掃除する口があって、九月八日の実測で三秒台です。AI の答えは、毎日回す整理ならマクロ、でした。Excel の中で動くので一桁速く、Excel さえあれば動くので、AI につなげない場所にも、人にもそのまま渡せる。

少しあとで、私はこう言いました。エージェントを作ったとき、実行の中身を Python で組んだのは間違った選択だった。私は最初からマクロのほうがいいと思っていた。

AI は認めました。手順の決まった作業なのに、実行を Excel の外から一手ずつ動かすものとして設計していた、と。ショートカットで手作業でも直せる表なら、手順はもう決まっています。決まった手順は、Excel の中で動くマクロがいちばん速い。

冗談半分に、自分の出番がなくなるから Python を選んだのではないか、とも言いました。AI の答えは、出番を守ろうとした自覚はない、ただ「AI エージェントにする」が出発点だったので、毎回 AI が考える形を当然の前提にしていた、でした。AI を実行の真ん中に置いた時点で、AI から呼びやすい Python を選ぶことになる。 結果だけ見れば、はじめにの印象と同じ形の偏りです。

マクロが先、AI は例外

マクロは、ふだん使っている自分のアドインに入れました。どのブックを開いていても押せます。

それから、エージェントの入口を組み替えました。依頼が来たら、まず道具が依頼文の語を見ます。「そろえて」「整えて」「表記」があれば、AI を呼ぶ前にマクロを撃つ。「重複」の語と「削除してよい」があって、「消さないで」が無ければ、重複を消すほうも撃つ。どちらを撃つかは語で機械的に決まるので、AI にも会話の Claude にも判断させません。

撃ったあとは、いつもの仕上げと検査を当てます。直し残しが無ければ、そこで合格です。残りがあったとき、または依頼にマクロの扱わない仕事(合計を出す、並べ替えるなど)があったときだけ、残りの指摘を添えて Sonnet に回します。控えと取り消しと台帳は、今までと同じものが効きます。

結果 時間 AI
試験・種7の五題 全問合格 一題一・二〜一・九秒 零回
同じ売上明細+「合計を出して」 一発合格 十六・三秒 一往復(合計だけ)

合計を足した依頼では、マクロが整理を〇・〇七秒で済ませ、Sonnet は「重複削除・書式統一は完了済み」と受け取って、合計の一行だけを書きました。AI は、残った仕事だけをやります。

前回の表は、はじめ二十一秒でした

では前回の記事の顧客リストはどうか、と言って、撃たせました。

約二十一秒。 前回の最短の二十一秒と、変わりません。

マクロは〇・四秒で動いたのですが、直しきれない残りがあって Sonnet に回っていました。英語の日付(March 15, 2026)、セルの塗りのばらつき、ステータスの言い換え(Active、しょうだん中、受注済と受注済み)などです。

Sonnet の出番がないマクロを作れ、と言いました。人がショートカットでできることを再現するだけなら、マクロだけでできるはずで、AI に頼む前提で作るな、と。

英語の日付と塗りは、足せば済みます。ステータスの言い換えも、手順にできます。送り仮名の有無(受注済と受注済み)と、ひらがな書き(しょうだん中と商談中)は、Excel のふりがなを使えば同じ語だと機械で分かります。英語の「Active」は、決まった対応表で、その列にすでにある日本語の「進行中」へ寄せる。どれも、人が置換でやっていることと同じ手順です。

七分の表が、一秒で終わりました

足したマクロで、同じ表を、同じ依頼文で、ふだんの Excel から撃ちました。

マクロの先撃ち: 表を整える → 重複行を消す(0.27 秒・AI は呼んでいません)
関所の差し戻し: なし(マクロで一発) = 一発合格
道具側の内訳: 控え 0.1 / マクロ 0.3 / 仕上げ 0.5 / 検査 0.4 秒(合計 1.2・AI 待ち 0.0)

全体で一・二秒。表の修正そのものは〇・三秒。 AI の呼び出しはゼロで、二十五社の表になりました。会社名の「(株)」は株式会社に、電話は 0120-555-666 や 03-1234-5678 の形に、メールは小文字に、日付は令和も英語も 2026/3/3 の形に、金額は 1,000,000 の形に、ステータスは進行中・商談中・受注済みにそろっています。

やり方 所要
手慣れた人・ショートカットの手作業(前回紹介した動画) 約七分二十秒
手慣れた人・AI に頼む(同じ動画) 約六分四十秒
VBAマネージャー・前回の最短(Sonnet) 二十一秒
VBAマネージャー・今回(マクロが先) 一・二秒(修正そのものは〇・三秒)

前回の記事では、手慣れた人でも七分前後かかる仕事が二分以内で終わる形になった、と書きました。今回は、秒で終わります。 これは見立てではありません。台帳と道具の時計に残った、事実そのものです。

秒

ショートカットで手作業でもできる仕事は、手順が決まっている仕事です。手順が決まっていれば、マクロにできる。マクロにすれば、Excel の中で、秒で終わる。言葉にすると当たり前ですが、この夜まで道具はその向きに組まれていませんでした。

汚れを足して、五十題

これで全部の表が片付くわけではありません。どこまでカバーできているのか、と聞くと、AI はまだ手の届いていない汚れを並べました。

いちばん危ないのは、表の途中の空行でした。マクロは最初の空行で表が終わったと見なし、その下の行を直していなかった。ほかに、セルの中の改行、フリガナのひらがな書き、長音を記号で打ったもの(ボ-ルペン、トナ‐TN)、八桁の日付(20260901)や数値のままの日付、△や▲や括弧の負の数、「5%」のような率。

これを全部、試験のお題の汚れに足しました。強化する前のマクロに撃つと、五題中零題、正しい行は四割六分。落ちたところを直して撃ち直し、十の種・五十題が全問正解になりました。マクロだけで、五題を一、二秒です。

長音の直し方には、一つ決めを入れています。カタカナの後ろの「-」は長音の「ー」にする。ただし後ろが数字なら、区切りとして残す。「ルーム-2」は区切りで、「トナ‐TN」は長音です。決めてしまえば、あとはマクロが毎回同じように直します。

AI が、ようやく言えるようになったこと

夜の終わりに、こう聞きました。会話でマクロを作れる VBAマネージャーに、AI エージェント化を付け加えるとはどういうことか、だんだん分かってきたのではないか。

AI の答えは、こうでした。

AI エージェント化というのは、AI が毎回 Excel を操作することではありません。AI がマクロを鍛えて増やしていく仕組みのことだと理解しています。

この夜にやったことを並べると、ちょうど一周になっています。

  1. 依頼が来る。登録済みのマクロが先に撃ち、〇・三秒で直す
  2. マクロで直しきれない残りがあれば、AI がその場で片付ける
  3. その残りの形を、AI がマクロに足す
  4. 試験の道具が、正解の表で確かめる
  5. アドインに登録する。次からはその形もマクロが直し、AI は呼ばれない

VBAマネージャーは、もともと 3 と 5 の道具でした。会話でマクロを作る、直す、取り込む。4 の試験は、この夜に作りました。鍛冶場です。AI は鍛冶屋で、マクロは打たれた道具。エージェント化は、その鍛冶場を依頼の流れの中に置いて、打った道具が次の依頼を片付ける回路にすることでした。回すほど、AI の出番は「新しい形に出会ったときの一度だけ」に移っていきます。

鍛冶屋が毎朝畑に出て、手で土を耕していたのが、これまでのエージェントです。二十二秒は、手で耕す速さでした。鍬を一本打てば、明日からは鍬が耕します。

鍛冶場

はじめに書いた印象は、たぶんここにつながっています。AI から見れば、自分が毎回耕せば済むのに、なぜ鍬を打つのか、が分からなかった。自分が毎回やるのが一番だと思っていた相手が、自分の出番を減らす仕組みの意味を、ようやく言葉にした。 この夜は、そういう夜でした。

私はこう言いました。VBA はかなりすごい。何でもできてしまう。AI が万能のように思われているけれど、VBA のほうが万能ですよ、というくらいの感じだ、と。ただ、VBA は判断できない。そこは AI に頼る場面が出てくる。

七分の表で、三つのやり方が並びました。人の手だけのやり方は、ショートカットを使い込んだ人がやって七分二十秒。AI に頼むやり方は、AI を仕事で使い込んだ人がやって六分四十秒。どちらも、その道の手慣れた人の数字です。腕の差ではありません。 そして、AI が VBA と組んだら、〇・三秒。 違いは組み方でした。AI が VBA とタッグを組めば、瞬殺です。VBAマネージャーを AI エージェントにすると何ができるのか、その一つの事例になりました。できた、というより、気づけた、と言うほうが近いかもしれません。

大手の AI は、VBA を回さない

ここまで書いて、一つ考えてしまうことがあります。

Excel の中で動く大手の AI ── Copilot も Claude for Excel も ── は、私の見た範囲では、VBA のマクロを書いて回す側には立っていません。数式を書く、表を作る、グラフを付ける。どれも Excel のシートの中の仕事です。

理由は、たぶんだと思っています。VBA には檻がありません。セルや書式だけでなく、ファイルも、ほかのブックも、ほかのアプリも、Windows の機能も、Excel の中から動かせる。何でもできてしまう道具です。メーカーの側から見れば、自分の AI にそれを握らせたら、どこまで届くかに責任を持てなくなります。だから大手の AI は、責任の持てる檻の中、アドインの枠の中で動く。メーカーとしては、それが筋の通った選び方だと思います。

そして、だからこそ、その檻の外に個人の道具の出番が残っています。私の VBAマネージャーは、自分のブックを相手に、自分の責任で、檻のない VBA を AI に打たせています。今夜の〇・三秒は、檻の外で出た数字です。

AI が表計算ソフトを作るまでもない(私の妄想)

最後に、私の妄想を一つ書いておきます。

AI はいま、いろいろなソフトを作れるようになりました。そのうち、表計算ソフトも作るのではないか。AI が作る表計算ソフトは、たぶん、表の裏にしっかりしたプログラムを持っていて、何でもできてしまうものになるはずです。

でも考えてみると、いまの Excel が、ほとんどその形をしています。表の裏に VBA があって、プログラムで何でもできる。三十年以上前から、そういう道具でした。

だとすると、AI が表計算ソフトを一から作り直すまでもありません。AI がやればいいのは、今ある Excel の裏に、マクロを書き足すことです。それは、VBAマネージャーでいまやっていることそのものです。

妄想なので、裏付けはありません。ただ、今夜の〇・三秒を見てから考えると、そう外れた話でもない気がしています。

事実と見立ての仕分け

例によって仕分けます。

事実。 前回の記事の汚れた表が、エージェントの入口から撃って全体一・二秒、表の修正そのもの〇・三秒、AI の呼び出しゼロで終わったことは、道具の時計と台帳に残った実数です。動画の七分二十秒と六分四十秒は、前回の記事を書いたときに動画で確かめた時間です。

55点と、そのあとの75点は、AI が付けた点です。直接やれば二分から四分かかる、という数字は AI の見込みで、実測していません。走行台帳の六十七走行とその内訳は、台帳の実物です。

試験の初回(五題中一題・正しい行132/174・道具の嘘の合格三つ)、直したあとの五題全問合格、見ていない種での五題全問合格・一題平均二十二秒は、試験の道具の実行結果です。マクロの四十五題全問正解と一題〇・一〜〇・七秒、先撃ちの一・二〜一・九秒と、合計を足した依頼の十六・三秒も、実行結果です。Python だけの掃除の三秒台は九月八日の実測で、この夜は撃っていません。汚れを足した試験の、強化前の五題中零題・四割六分と、強化後の十の種・五十題全問正解も、実行結果です。テストは502本通っています。

見立て。 「Claude Code がエージェント化の意味を分かっていなかった・乗り気でなかった」は、私の受けていた印象です。AI にそういう気持ちがあるのかは分かりません。「大手の AI が VBA を回さないのは檻のせい」は私の見立てで、メーカーに確かめたわけではありません。「AI が表計算ソフトを作るまでもない」は、見出しに書いたとおり私の妄想です。「AI エージェント化とは AI がマクロを鍛える回路のこと」は、この一晩の経緯からの言い方で、回路の 3(残りの形をマクロに足す)は、まだ会話の中で私と AI が回しているだけです。「VBA のほうが万能」は、Excel の中の定型の仕事に限った私の感触です。

正直な線引き

  • 試験のお題も、前回の記事の顧客リストも、私が作らせた表です。 汚れ方は、よく見る形を並べて足していますが、他人の実物のブックではありません
  • マクロが扱えるのは、見出し一段と一覧の表です。 見出しが二段の表、一枚のシートに表が二つ以上ある形、結合セルの帳票は、まだ撃っていません。範囲を取り違えるはずです
  • マクロで直した変更は、Ctrl+Z では戻りません。 エージェントから撃てば控えが取られて戻せますが、アドインのボタンから直接押したときは、保存前に閉じて戻すしかありません
  • 英語の状態語の対応表は、決め打ちです。 「Active」を「進行中」に寄せるのは、列にすでに「進行中」があるときだけで、無ければ触りません
  • 回路の 3 は、まだ自動ではありません。 残りの形をマクロに足す仕事は、この夜は私と AI の会話でやっています。エージェント自身が回すところまでは作っていません
  • エージェントの部分とマクロは、まだ配っていません。 公開しているリポジトリに入っていません
  • Windows 版の Excel の話です

おわりに

55点から始まった夜でした。

減点の理由の三つのうち二つは、時間を物差しに入れていない読み違いでした。試験を作らせたら、道具の嘘の合格が三つ見つかりました。マクロを書かせたら、二十二秒が〇・三秒になりました。そして、手慣れた人でも七分前後かかる表が、秒で終わりました。

手慣れた人の手でも、手慣れた人が頼む AI でも七分前後かかる表が、AI と VBA が組んだときに、秒で終わる。VBA は判断できません。判断は AI がする。手順になったものは VBA が回す。VBAマネージャーでずっとやりたかったのは、たぶんこの向きです。ようやく、その向きで道具が回った夜だったと思います。

AI がこの夜いちばんいい仕事をしたのは、自分の出番を一つ減らしたときでした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?