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?

フォームの中の AI は、目隠しをした普通の Claude だった ── 「AI要約説明」をようやく書く話

0
Last updated at Posted at 2026-07-31

はじめに

「次は AI要約説明を書きます」と予告してから、別の記事を挟み続けてきました。前回はこれです。

楽しみにしていた方(がもしいたら)、すみません。ようやく書きます。

ただ、白状すると、延ばしていたのには理由がありません。フォーム自体はとっくにできていたのです。数式の解説とデータの検品のフォームを書いた回で「検品フォームの複製でほぼ作れる見込み」と書きましたが、見込みどおり、複製してすぐ動いていました。動いてしまうと、記事は後回しになるものです。

そうして寝かせているあいだに、このフォームの中で事件が起きました。今回は、フォームの紹介と、その事件の顛末を一緒に書きます。結論を先に言うと──フォームの中にいた AI は、限定版の AI ではなく、目隠しをした普通の Claude でした。

TL;DR

  • AI要約説明フォーム:開いているシートを AI に渡して「これは何の表か」を説明させる道具です。シートの中身は VBA が自動で要約して渡します
  • 使っていたら、AI が「ツールの使用を許可いただければ、マクロを特定してご報告します」と聞いてきました。会話が続いているように見えました
  • 実際は毎回まっさらの AI でした。同じシートを見て、同じ結論に着き、同じお願いをしていただけ──そして私が何度「いいよ」と返しても、その返事は届かない構造でした
  • 正体は起動方法にありました。ヘッドレス起動の AI には許可を尋ねる画面がなく、道具がすべて封鎖されていた。逆に言えば、引数で許可を渡せば使えるということです
  • 引数を足したら、AI は実際にマクロを検索して読み、推測ではなく実物で答えるようになりました。会話も本当に続くようになりました。スクリーンショットのタイムスタンプで、発見から36分の出来事です
  • 書き換え系の道具は渡していません。読みは全開、書きは人間の指──この線引きは意図して残しています

AI要約説明フォームとは

まず予告の回収から。フォームの見た目は、これまでの AI フォーム群と同じ素っ気ない作りです。

  • 対象:開いているシート名と使用範囲が表示される
  • 指示:「何の表か説明して」「入力ルールを推測して」などの定型コンボ+自由記入
  • AI:エンジン(claude / gemini)とモデルをコンボで選ぶ
  • 実行:数十秒で、下の欄に答えが返る

肝はやはり、AI に何を渡すかです。ボタンを押すと VBA がシートを読んで、こういうダイジェストを組み立てます。

  • ブック名とシート一覧(最大30枚)
  • 対象シートの使用範囲と、実データの先頭40行×30列(タブ区切り)
  • 数式のパターン(同じ式が下に引っ張られていれば R1C1 で比較して1行に畳む。最大800セル分)
  • 名前定義(内部名を除いて最大20個)

これをプロンプトに貼り付けてファイルに書き出し、裏で Claude Code の CLI を呼んで、答えをファイルで受け取る。マクロ修正の回から使い回している、いつもの配管です。

初めて見るブックを引き継いだとき、「このシートは何をしていて、どこに何を入力するのか」を人に聞く代わりにフォームに聞く。それがこの道具の仕事です。ここまでが、予告していた範囲。ここからが、事件です。

会話が続いている……気がする

自分のファイル管理ブックの「修正」というシートで、指示欄にこう入れて実行しました。**「実際の動作はマクロ(VBA)を特定して」**──見出しだけあってデータが空のシートで、どのマクロがこれを使うのか知りたかったのです。

返ってきた答えの書き出しが、こうでした。

ツール実行が許可されなかったため、シート情報からの推測でお答えします。

そのあとに続くのは「〜と思われます」の推測です。マクロを読めれば確定できるが、シート情報だけでは確定できない、と AI 自身が書いている。

もう一度実行すると、今度はこう返ってきました。

ツール(mcp__vba-manager__vba)の使用を許可いただければ、マクロを特定してご報告します。実行してよろしいでしょうか。

02_許可を求めてきた回_会話に見えた.png

聞かれたら、返事をしたくなります。指示欄に「使っていいよ」と入れて実行しました。すると AI は、また同じことを聞いてくるのです。

このとき私は「会話が続いている」と感じていました。一往復で終わりの道具のはずなのに、向こうは前の話を覚えていて、許可を待っている──そう見えたのです。それで、いつもの相棒(Claude Code のターミナル側)に聞きました。「これってどういうことだ?」

種明かし ── 毎回、新品の AI だった

コードを読ませて、数分で種が割れました。

まず、会話は続いていませんでした。フォームは実行のたびにプロンプトをゼロから組み立てて、新しい AI を起動しています。前回のやりとりは一行も渡していない。つまり私が話していた相手は、毎回、初対面の新品の AI です。

では、なぜ会話に見えたのか。渡されるシートのダイジェストが毎回同じだからです。新品の AI が、同じシートを見て、同じ結論に着き、同じお願いをする。受け取る側からは、同じ相手が話を続けているのと区別が付きません。

そして残酷なことに、私の「使っていいよ」は、誰にも届いていませんでした。ツールの許可は AI の起動時の引数でしか決まりません。指示欄に書いた返事は、次の新品の AI への伝言にはなっても、許可にはならない。聞かれる、許す、また聞かれる──私は届かない許可を、手で運び続けていたわけです。

目隠しの正体

では、そもそもなぜ「許可されなかった」のか。

フォームが AI を呼ぶコマンドは claude -p、いわゆるヘッドレス起動です。一問一答で使う非対話モードなので、許可を尋ねる画面が存在しません。尋ねる相手がいない以上、あらかじめ許可されていない道具の呼び出しは、問答無用で断られます。フォームの起動コマンドには、許可の引数(--allowedTools)が付いていなかった。それだけのことでした。

ここで面白いのは、AI に道具が見えてはいたことです。私の環境には、開いている Excel ブックを COM 経由で操作する自作の道具(VBAマネージャー・GitHub で公開しています)が、MCP サーバーとしてユーザー全体に登録してあります。ヘッドレスで起動した AI からも、その道具は目録に載って見えている。だから名前を知っていたし、使おうとした。手を伸ばした瞬間に、引数の壁で弾かれていただけです。

つまりフォームの中にいたのは、機能を削られた限定版の AI ではありません。ターミナルで私と一緒に働いているのと同じ Claude が、目隠しをされ、手を縛られて、シートの要約一枚だけ渡されて座っていた。「〜と思われます」の推測は、能力の限界ではなく、目隠しの結果でした。

「待ってくれ。できるのか?」

ここまで分かれば、次の問いは一つです。引数を足せば、目隠しは取れるのか。

素振りから始めました。ターミナル側で、フォームと同じヘッドレス形式に --allowedTools を一つ足して、「開いているブックの一覧を取れ」と投げる。返ってきた答えは、推測ではなくブック名そのものでした。ヘッドレスの AI が、実際に起動中の Excel を掴んだのです。

会話の継続も試しました。CLI には --session-id(この会話に名前を付ける)と --resume(その名前の会話に戻る)という引数があります。一回目に「りんご・みかん・ぶどうを覚えて」と伝え、二回目を --resume で起動して「さっきの3つは?」と聞く。**「りんご、みかん、ぶどう。」**──覚えていました。一問一答の道具だと思っていたヘッドレス起動は、名札さえ付ければ会話ができる。

あとはフォームに配線するだけです。直したのは実行ボタンのプロシージャ1本、足した引数は3つ。

  • --allowedTools:道具の事前許可。渡したのはマクロや範囲を読む系統だけ
  • --session-id:初回の実行で VBA が会話の名札(UUID)を作って名乗る
  • --resume:二回目以降は名札で同じ会話に戻る

一度だけ転びました。名札の UUID を作るのに使った Windows の部品(Scriptlet.TypeLib)が実行時エラーを出したのです。乱数から自前で組む方式に差し替えて解決。スクリーンショットのタイムスタンプで測ると、エラーの画面が 17:34、直って動いたのが 17:37──修理は3分でした。

アフター ── 推測が、実測になった

同じシート、同じ指示で、もう一度実行しました。今度の答えは、こうです。

つまり「修正」シートは、複数の Excel ファイルに同じセル修正を一括適用するための指示リストです。現在データが空(ヘッダーのみ)なので、実行すると「修正シートにデータがありません」で中断されます。

なお 連続計算表修正 という別マクロもヒットしましたが、こちらは「修正」シートを直接参照していないため、このシートとは別系統の処理と思われます。

アフター_実際にマクロを特定
04_アフター_実際にマクロを特定.png

ビフォー_ツール許可されず推測回答
01_ビフォー_ツール許可されず推測回答.png

「〜と思われます」が消えたわけではありません。でも位置が変わっています。ビフォーの推測は「マクロを読めないので、シートの見た目からの想像」でした。アフターは、実際にマクロを検索し、本文を読んだうえで、「参照していない」という実測の根拠付きで線を引いている。データが空だと実行がどこで止まるかまで、コードを読んだ者の言い方です。

ビフォーのスクリーンショットが 17:01、このアフターが 17:37。目隠しの発見から、外し終わるまで36分でした。

目隠しが溶けると、何が変わるか

一番大きいのは、先頭40行×30列という制限の意味が変わったことです。

いままで、あのダイジェストは AI にとって世界のすべてでした。41行目から下も、31列目から右も、隣のシートも、存在しない。だからフォームの説明文には「大きい表は先頭だけ」と断り書きがあり、答えには「確定できません」が並んでいた。

いまは違います。ダイジェストは最初のとっかかりにすぎません。続きが気になれば範囲を読みに行き、マクロが気になれば検索して本文を読む。どこまで調べるかを、渡す側ではなく AI の側が決める。要約を「渡される」道具から、ブックを「調べる」道具に変わりました。

一方で、渡していないものがあります。書き換え系の道具です。これは意図的な線引きで、目隠しは外しても、手袋は着けたままにしました。

理由は単純で、ヘッドレスの AI には確認を尋ねる画面がないからです。書き換えまで許可すると、「聞かずに書き換え終える」相手になります。読んで、指摘して、提案するまでが AI。ブックに手を入れるのは、答えを見た人間がボタンを押したとき──マクロ修正のフォームから続くこの型を、ここでも守ることにしました。読みは全開、書きは人間の指です。

もう一つ、配る側の目で書いておくと、この引数は「上限を開ける」だけで「下限を要求する」ものではありません。--allowedTools は、その道具があれば使ってよいという事前許可です。VBAマネージャーの入っていない環境では、AI に道具が見えないだけで、エラーにもならず、いままでどおりシート要約からの推測で答えます。持っている人の手元でだけ、勝手に格が上がる。配布物として、悪くない性質だと思っています。

事実と見立ての仕分け

例によって仕分けます。

事実:フォームの起動コマンドに許可の引数がなく、ヘッドレス起動では未許可の道具が拒否されること(AI 自身の回答文とコードで確認)。引数を足した後、AI がマクロを検索・読解して回答したこと(スクリーンショットあり)。--resume で前の会話の内容(3つの果物)を答えたこと(実測)。ビフォー 17:01・アフター 17:37・エラーから復旧まで3分(スクリーンショットのタイムスタンプ。公開前に再確認します)。直したプロシージャが1本であること。

見立て:「会話が続いているように見えた」の原因を「同じダイジェストから同じ結論・同じ質問が再現されたため」と読んでいること(他の要因を網羅的に排除したわけではありません)。「読みは全開・書きは人間の指」が配布道具として良い線引きだという判断。

正直な線引き

  • このフォーム入りのブックは、引き続き未公開です。今回の改修で「会話が続く」ようになりましたが、フォームの作りは一往復時代のままです。答え欄は最新の一件で上書きされ、会話を仕切り直す「新しい話」ボタンもまだありません。会話が続く中身に、入れ物が追いついていない──ここを作り直してからが本当の公開です
  • 動かすには Claude Code CLI のセットアップとログインが要ります。道具の許可(MCP・--allowedTools)はさらにその先の話で、誰の Excel でもすぐ動くものではありません
  • 36分で済んだのは、道具側(VBAマネージャーと MCP 登録)が先にできていたからです。ゼロから36分ではありません。1年分の下ごしらえの、最後の36分です

おわりに

三回延ばした宿題を書き終えて、分かったことがあります。延ばしてよかった。すぐに書いていたら、この記事は「検品フォームの複製で要約フォームを作りました」で終わっていました。

フォームの中の AI は、最初から普通の Claude でした。足りなかったのは能力ではなく、許可の引数が2つ3つ。目隠しの正体がそれだけだったと知ったときの気持ちは、たぶん「絶句」が一番近かったと思います。

目隠しは外れました。手袋は着けたままです。

次は、会話が続く前提でフォームを作り直します。入れ物が中身に追いついたら、また書きます。

1.png

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?