はじめに
先週、ひと夏かけて作った Excelコンボ を GitHub に置きました。その顛末は前回書いています。
書いたあとで、自分の記事を読み返して気がつきました。動いているところが、一枚も載っていません。
「担当ごとの数量合計を出して」「空白行を削除して」と、頼み方の例は並べました。中身の数字も並べました。それなのに、注文を出したら表がどう変わるのかが、どこにも書いてない。触ってみてくださいと言っておいて、触った結果を出していなかったわけです。
そこで、三日かけて三本撮りました。
一本目、汚れた名簿。 重複・全角半角・日付の書式がばらばらの名簿を、注文をまとめて渡して整えます。
二本目、結合セルの帳票。 一件が二行に分かれた帳票を、一行一件の一覧表に直します。要らない図形の削除と、印刷の設定まで。
三本目、バラバラの住所。 郵便番号の書き方がそろっていない名簿を整えて、別の表と会員番号で突き合わせます。
この三本を並べたあとで、自分の道具が何をしているのかが、ようやく言葉になりました。
AIエージェントという言葉には、どこか、放したら好きに走り回るものという手触りがあります。頼むと、こちらが見てほしいと思っていない場所まで見に行って、頼んでいないところに手を出して、何をしたのか後から追えない。便利な代わりに、どこで何が起きたのか分からない。私も、そういうものだと思っていました。
Excelコンボ でやっているのは、たぶん逆のことです。放し飼いにしないで、手懐ける。
秋田の犬といえば、忠犬ハチ公です。あの言い方を借りるなら、忠犬AIエージェントです。
秋田犬は、放っておけば山を駆け回る猟の犬です。それを人の隣で働けるようにしたのは、犬が賢くなったからではありません。どこを嗅ぐか、どこまで行っていいか、いつ待つかを、人の側が教えたからです。しつけというのは、能力を削ることではなくて、仕事の範囲を決めることでした。
今日は、そのしつけの中身の話をします。
TL;DR
- 全部をAIに丸投げするのではなく、こちらが決められる場所を増やす。 放し飼いのAIエージェントを手懐けて、忠犬AIエージェントにしてしまう。それが Excelコンボ の考え方です
- 三本目で、一回目の出来が整っていなかったので、「もう少し一覧表を整えてください」と打ち直しました。 十五文字です。それで罫線も見出しの色も桁区切りも入りました
- その十五文字が通じたのは、履歴6,678字が一緒に飛んでいたからです。一回目の最初の往復は履歴0字でした。この対比が画面のログに出ています
- 注文は三行、約50字。実際にAIへ送られたのは2,234字。差は、道具が自分で集めた材料です。どこを嗅ぎに行くかは、私が書いたVBAが決めています
- 21秒のうち、VBA側の処理はキー0.00秒・準備0.0秒・後始末0.0秒。待ち時間以外はゼロです。遅いのはAIであって、Excelではありません
- 三本とも**一番安いモデル(gemini-3.7-flash)**で撮っています。嗅ぐ場所と呼び方が決まっていれば、賢いモデルは要りません
- しつけの項目は、数えたら七つありました。どこを嗅ぐか・呼び方・行っていい範囲・どの犬か・待て・よし・訓練場
- 正直に書くと、しつけた犬は教えていない匂いを嗅ぎません。私が「要る」と書かなかった材料は、永遠に届きません
一本目 ── 汚れた名簿
まず、いちばん分かりやすいものから。
練習用のシートに、わざと汚した名簿を置いてあります。同じ人が二回入っている。氏名が全角と半角で混ざっている。入会日の書き方がそろっていない。罫線も無い。
注文をまとめて渡して、実行を押します。21秒で片づきました。重複の削除、全角半角の統一、入会日の書式そろえ、罫線まで。
ここで一つ、断っておきます。撃っているのは練習用のシートです。 Excelコンボ には練習用のシートが五枚入っていて、それぞれに隠した原本が付いています。何度書き換えても、ボタン一つで最初の状態に戻ります。
訓練場です。 人のブックで試させないための台で、三本の動画は全部この上で撮りました。落としたその日に、大事なファイルを一度も開かずに、ひととおり触れます。
二本目 ── 結合セルの帳票
二本目は、少し意地の悪い題材にしました。
一件が二行に分かれていて、見出しも二行。結合セルだらけ。おまけに要らない図形が三つ載っています。いわゆる神エクセルの、軽いやつです。
注文は日本語で三行。一行一件の一覧表に直して、要らない図形を消して、印刷を一ページ幅に収めて見出しを全ページに出す。24秒、往復7回で通りました。
結合セルは、AIにとって相性の悪い相手です。八月に Claude for Excel に取材したとき、向こうも弱点として自分から挙げていました。
そこを通せたのは、道具の側で先に材料を渡しているからです。この話は、あとの節でします。
三本目 ── バラバラの住所、そして言い直した
三本目が本題です。
題材は住所です。郵便番号がハイフン付きと無しで混ざっている。住所の中に全角の数字とハイフンが混ざっている。そして右側に、別の表として申込一覧が置いてある。
注文は三行です。
郵便番号をハイフンつきに統一して
住所の全角半角をそろえて
左の名簿と右の申込一覧を会員番号で突き合わせて
21秒、往復4回で通りました。郵便番号がそろい、住所の全角が半角になり、名簿の側に VLOOKUP が入って、申込コースと金額が突き合わされました。申込のない人には「未申込」と入っています。
報告も返ってきました。やったことが三点、箇条書きで並んでいます。間違ってはいません。頼んだことは全部やっています。
ただ、出てきた表を見て、私は物足りませんでした。
罫線がありません。見出しに色もついていない。金額に桁区切りもない。要は、見た目が整っていない。
そこで、その場で打ち直しました。
もう少し一覧表を整えてください
十五文字です。 何の表かも、どの列かも、さっき何をしたかも、一言も書いていません。
往復2回で、罫線が全部入り、見出しに色がつき、中身が中央にそろい、金額が「12,000」と桁区切りになりました。右側の申込一覧にも枠が付きました。
ここが、前の二本には無かったところです。
十五文字が通じた理由
なぜ十五文字で通じたのか。答えは、画面のログに出ていました。
Excelコンボ には経過のタブがあって、一往復ごとに何を送ったかが秒数つきで出ます。三回ぶん並べます。
| 送り | 返り | 履歴 | 待ち | |
|---|---|---|---|---|
| 一回目の一往復目 | 2,234字 | 60字 | 0字 | 1.7秒 |
| 一回目の二往復目 | 4,128字 | 41字 | 2,323字 | 7.1秒 |
| 二回目(言い直し) | 6,751字 | 48字 | 6,678字 | 14.5秒 |
十五文字の注文の裏で、履歴6,678字が一緒に飛んでいます。
最初の往復は履歴0字です。そこから会話が積み上がって、言い直したときには6,678字ぶんの「さっきまでの経緯」を抱えていた。だから「一覧表」と言うだけで、どの表のことか通じました。
これは、ボタンにはできません。ボタンは、前回押されたことを覚えていないからです。 マクロを一つ書いて割り当てておけば、同じ処理は何度でも走ります。けれど「さっきのあれを、もう少し」は通じない。毎回、最初から全部を言い直すことになります。
犬なら、覚えています。さっき何をさせたかを分かっている相手には、「もうちょっと」で足ります。
そしてもう一つ、この十五文字の性格を書いておきます。
これは訂正ではありません。 AIは失敗していません。頼んだ三つは全部やって、正しく報告しています。足りなかったのは、私が言わなかったことです。
つまりこれは、「AIがしくじったので直させた」話ではなく、注文する側が、全部を先に言えなくていいという話です。仕様を先に固められる人には要らない性質かもしれません。ただ、私のように、出てきたものを見てから「もうちょっとこう」と言いたい種類の人間には、ここが決定的でした。
どこを嗅ぎに行くかは、教えてある
さて、ここからが今日いちばん書きたいところです。
同じログに、もう一つ面白いものが出ていました。私が打った注文は三行、約50字です。ところが実際にAIへ送られたのは2,234字でした。
差は何かというと、ログに全部並んでいます。
範囲 テスト用4!A1:M13
数式 テスト用4!A1:M13
シート構造 テスト用4
名前付き範囲一覧
範囲 テスト用4!E5:M13
セルの値。数式。シートの構造。名前付きの範囲の一覧。「この範囲を見て」と、私は一度も言っていません。 道具が先に集めて、注文にくっつけて送っています。
しかも一往復目と二往復目で、集めるものが違います。二往復目では名前付き範囲の一覧を取りに行って、範囲も絞り込んでいる。AIが「次はこれを見せろ」と言い、道具が取ってきて、また送る。
この五行を決めているのは、私が書いたVBAです。 どこを嗅ぎに行くかを、先に教えてあるわけです。
ここが、他の道具と一番違うところだと思っています。
八月に Claude for Excel に取材したとき、向こうの仕組みを本人から聞きました。会話が始まるときに initial_state という軽いJSONを受け取る。中身はファイル名・シート名・使用範囲の大きさ・テーブル・固定枠だけで、セルの中身は入っていません。 地図だけ先に渡されて、中身は必要になったら読みに行く作りです。
だから、頼むと「確認します」と言ってシートを読みに行きます。あれは仕様どおりの動きです。読むときの呼び出しには上限もあって、一度に2,000セルまで、CSVで読むときは既定500行まで、と決まっています。
どのシートの、どの範囲を読むかを決めているのは、向こうのAIです。
これが良し悪しの話ではないことは、先に書いておきます。作りが違うだけです。ただ、結果は変わります。理由は三つあると思っています。
一つ、嗅がなかった場所は、無いのと同じです。 答えの上限は、探索の設計で決まります。ここを他人の実装に預けるということは、答えの上限を預けているのと同じことです。
二つ、同じ質問でも、行き先が変わりえます。 VBAに書いてあれば、毎回同じところを嗅ぎます。
三つ、こちらから確かめられません。 何を見て答えたのかが分からない。Excelコンボ は、今日のように五行がログに出ます。どこを嗅いだかが、後から読める。
もう一つ、本人が申告していた性質があります。あの initial_state は自動更新されません。 会話を始めた後に使用範囲が広がっても、地図は古いままです。古い地図を持ったまま、次にどこへ行くかを決めることになる。放して任せるというのは、そういうことでもあります。
しつけの項目は、七つあった
嗅ぎ先の話をしていて、気がつきました。これは一か所の話ではありません。数えたら七つありました。
| 決めること | 犬で言うと | どこにあるか |
|---|---|---|
| 何を見に行くか | どこを嗅ぐか | VBA(範囲・数式・シート構造・名前付き範囲) |
| どう注文するか | 呼び方 | 定型34本・手順書20本(フォームの中に焼いてある) |
| どこを相手にするか | 行っていい範囲 | 対象ブックと対象シートを選ぶ欄 |
| どのAIを使うか | どの犬か | Gemini か Claude、Flash か Pro をその場で選ぶ |
| いつ止まるか | 待て | 手順書の完了条件(人が先に書く) |
| 書かせるかどうか | よし | 実行前の確認と[元に戻す] |
| どこで試すか | 訓練場 | 練習用のシート五枚 |
三本目の動画に、このうち三つが映っています。対象のシートを選ぶ欄に「テスト用4」と入っている。AIの欄が「gemini(直)」と「Flash」になっている。そして注文の文面は、シートに置いてある例文を[指示をコピー]で貼っただけです。私は、注文の言い回しすら考えていません。
ここは「設定項目が多い」という話とは、少し違うつもりです。設定というのは、作った人が用意した選択肢の中から選ぶことです。選択肢の外には出られません。
こちらは、嗅ぎ先がVBAに書いてあります。選択肢を増やすのではなく、書き換えられる。前回、参照設定を一本も足していないと書きましたが、外から足したものが無いということは、全部が書き換えの対象だということでもあります。
それから、誤解されないように書いておきます。これは「AIを信用しない」話ではありません。 三本目の動画で、私は往復四回ぶん全部AIに書かせています。信用していないなら、そんなことはしません。
しつけた犬を信用しないで働かせる人はいません。信用する範囲を、自分で決められるというだけの話です。任せる線を、飼っている側が引ける。放し飼いは、その線が向こうにあります。
待ち時間以外は、ゼロ秒
数字の話をもう二つ。どちらもログから拾ったものです。
一つ、21秒の内訳です。
一往復ごとに「キー0.00秒/準備0.0秒/送信待ち1.7秒/後始末0.0秒」と出ています。三往復とも同じで、待ち以外は全部ゼロでした。
VBAで作ったから遅いのではないか、という疑いは当然あると思います。実測は逆でした。待っているのはAIの返事で、Excelの側はほとんど何もしていません。
二つ、モデルです。
ログには「返事のモデル: gemini-3.7-flash」と出ています。三回とも同じ。一番安くて速い側のモデルです。高いほうは使っていません。
なぜ足りるのか。材料は道具が集めていて、注文の型も定型と手順書で決まっているからだと思っています。AIに残されているのは「この材料を、この型の注文どおりに変換する」だけ。考える範囲が狭いので、賢いモデルが要らない。
放し飼いのまま何でも聞くなら、賢い犬が要ります。しつけてあれば、足ります。しつけが、そのまま費用と速さになっている。 ここは自分でも、あとから気がついたところでした。
事実と見立ての仕分け
例によって仕分けます。
事実。 三本の動画は二〇二六年八月三十日・三十一日・九月一日に、私の一台(Windows 11・64bit Excel)で撮ったものです。撃った先はすべて Excelコンボ に入っている練習用のシートで、自分の仕事のブックは一度も開いていません。
三本目の数字は、録画に映っている経過タブのログをそのまま読んだものです。一回目が往復4回・21秒、二回目の言い直しが往復2回。送り・返り・履歴の字数(送り2,234/4,128/6,751、返り60/41/48、履歴0/2,323/6,678)、内訳の秒数、モデル名(gemini-3.7-flash)、集めた材料の五行──全部、画面に出ている値です。
Claude for Excel の仕組みについて書いたことは、八月二十八日に本人に聞いた答えです。仕様書と突き合わせたわけではありません。読みの上限(2,000セル・500行)も、initial_state が自動更新されないことも、本人の説明です。
Excelコンボ の実装は、例によってほぼ全部AI(Claude)にやらせています。私がやったのは判断と、実機での確認です。三本の動画で画面を操作したのは私で、「もう少し一覧表を整えてください」と打ったのも私です。
見立て。 「忠犬にする」という言い方は、私が自分の道具を眺めて出てきたものです。作るときにそう考えて作ったわけではありません。後から名前が付いたほうが正しい。
「しつけの項目が七つある」の数え方も、私が決めたものです。別の数え方をすれば六つにも十にもなります。「しつけが費用と速さになっている」も、Flash で足りている事実からの私の読みで、モデルを変えて比べたわけではありません。
そして「この作りのものを、ほかに知らない」──これも前回と同じで、私が探した範囲での話です。断定はしません。あったら教えてほしい、と思っています。
正直な線引き
道具の話なので、都合の悪いところも書きます。
- しつけた犬は、教えていない匂いを嗅ぎません。 嗅ぎ先をVBAに書くというのは、書かなかったものが永遠に届かないということでもあります。住所の突き合わせだから名前付き範囲を取りに行くように書いてありますが、それは私が「要る」と判断したからです。判断が外れていれば、その材料は来ません
- 放し飼いが楽なのは事実です。飼う側が何も決めなくていい。万人向けの性質ではありません
- 三本とも訓練場の上です。列も行も、私が用意した形をしています。実際の仕事のブックがこの通りに片づく保証はありません
- 秒数(21秒・24秒)はその日その回の実測です。通信の混み具合で変わりますし、会話が長くなるほど遅くなります。実際、三本目は送りが2,234字→4,128字→6,751字と増え、待ち時間も1.7秒→7.1秒→14.5秒と伸びました。言い直せるのは、ただではありません
- Windows 版の Excel の話です。Mac や Web では動きません
- APIキーは自分のものを使ってください。料金は自分のキーに掛かります
- 前回書いたとおり、これは**作りかけの「お試し版」**です。前回の記事には「まだ他人の手元で一度も動いたことがありません」と書きました。あれから何人かに落としていただいたようですが、動いたかどうかの便りは、まだ届いていません
おわりに
前回は「作った話」を書きました。今回は、動いているところを三本並べました。
書きながら、自分でも整理がついたことがあります。この道具の値打ちは、たぶんできることの数ではありません。三本の動画でやったことは、慣れた人ならマクロでも書けます。
そうではなくて、決められることの数なのだと思います。どこを嗅ぐか。どう呼ぶか。どこで待つか。どこで試すか。それを全部こちらに置いたまま、面倒なところだけAIにやらせる。
一回目で決まらなかったら、言い直せばいい。十五文字で通じます。通じるだけの経緯を、道具が覚えて運んでくれているからです。
秋田犬を家の中で飼えるようにしたのは、犬を弱くしたからではありませんでした。人の側が、教える手間を引き受けたからです。AIエージェントも、同じことなのだと思います。放して賢さに任せるのか、こちらが教えて隣に置くのか。
うちのは、隣に伏せています。まだ四つの匂いしか教えていないので、それ以外は分かりません。教えるのは、これからです。
宿題は、二学期も続いています。


