はじめに
いま、私の画面は左右に割れています。左半分に Excel。右半分に Claude Code。左のブックは開いたままで、私はセルを選んだり書式を整えたりしながら、右の AI と日本語でやり取りしています。
以前、マクロ一覧の [AI修正] ボタンを押すと会話もいらずにマクロが直って戻ってくる、という話を書きました。
(また「AI要約説明」の予告を一回飛ばします。すみません、その前にどうしても書いておきたい夜があったのです。)
今回はその続きにあたる発見の話です。結論を先に言うと、「直る」は入口にすぎませんでした。ある夜の作業を最初から最後まで記録して、それが分かった顛末を書きます。コードはほとんど出てきません。出てくるのは、会話です。
TL;DR
- 開いたままの Excel に AI が相乗りして、「いま私が選択しているセル」を読みながら会話で作業を進めました
- セルの中身から会話ログの保存名の不具合が見つかり、原因を追わせたら、AI がログの0.8秒の差を物証に真犯人(保存処理の並走)を挙げました
- ついでに見つかった二重保存は延べ100枚超。本文の完全一致だけを根拠に掃除して、会話は1件も失わずに片付きました
- Excel 側には「シートごとにサブフォルダを除外する設定」が増えました。マクロの追加は実質1行。セルの書式は私が手で整え、AI はそれをスクリーンショットで見て取説を書きました
- この作業の全部が、ブックを閉じずに進んでいます。閉じたファイルを渡す方式では、この会話は成立しません
- 「AI は VBA の知識が豊富」は誰でも気づきます。本題はその先で、開いたまま会話しながら作ると、人が書かなかった水準の道具に育つ、という話です
「今開いているExcelファイル、わかりますか?」
夜中の作業は、この一言から始まりました。
AI の返事は2つのファイル名でした。ファイル管理ツールの「ファイル一覧.xlsm」と、アドインです。続けて聞きます。「今選択しているセルの内容、わかりますか?」──返ってきたのは、会話シートの B25 と、その中身でした。
私の道具には「会話」というシートがあって、AI との会話ログが自動保存されるフォルダの一覧が出ています(この仕組みは後で説明します)。B25 に入っていたのは、こういうファイル名でした。
2026-07-30 12-03 UCY3-c_5i-r-4gYzv89emvrw.md
「内容を見て気づきませんか?」と振ると、AI は周辺のセルを読んで、同類を並べてきました。YouTube のチャンネル ID がそのままファイル名になっているもの。httpsyoutu.be で始まるもの。URL を貼って始めた会話は、URL がそのまま題名になっていたのです。一覧から中身が読めません。
ここまでで数往復。ファイルを開き直した回数は、ゼロです。
会話ログの保存箱と、名前の直し方
仕組みを先に説明します。私の環境では、Claude Code の会話が終わるたびに、フックで Python スクリプトが走り、会話全文が Obsidian の保管庫に 1 会話 = 1 枚の Markdown として保存されます。ファイル名は「日付 時刻 タイトル」。タイトルは AI が付けますが、付け損なったときは先頭の発言の抜粋が使われます。URL だけ貼って始めた会話は、この抜粋が URL になる──それが B25 の正体でした。
直し方は会話で決めました。タイトルの材料から URL と ID を外す。発言が「解説して保存してください」のような定型だけなら、何の話かは AI 側の返事に出ているので、そちらから起こす。AI がその場でスクリプトを直し、過去の実データ 16 件で判定だけ試してみせます。
旧 2026-07-30 12-03 UCY3-c_5i-r-4gYzv89emvrw
新 2026-07-30 12-03 こちらのチャンネルの動画をすべて保存して、内容を
読める名前にはなりました。ここで私が「まず、選択しているセルの分だけ変えてみてください」と指示して 1 件だけ実ファイルを付け替えたところで──話が思わぬ方向に曲がります。
同じ日時の会話ログが、もう 1 枚あったのです。しかも中身は同一で、そちらには「官僚業務の実態と方向性」という、ちゃんとした題名が付いていました。URL 名のファイルは、名前が悪かったのではなく、同じ会話が二重に保存されていた片割れでした。
「原因は分かっていないといけません。それが仮面デカの宿命です」
重複の掃除だけして先へ進むこともできました。そこで出たのがこの節の見出しの一言です(仮面デカというのは、私の自作動画シリーズの探偵キャラです)。原因が分からないまま掃除しても、また積もる。だから追ってください、と。
AI は設定ファイルとログを読み、数分で物証を出してきました。保存ログの、この 2 行です。
2026-07-30T14:43:14.868 sync :: wrote=1 :: 689eabe8-….jsonl
2026-07-30T14:43:15.671 session=7e25ed71 :: wrote: …YouTubeチャンネル動画一括保存.md
差は 0.8 秒。会話の保存処理は 2 系統あって(終了時に走るものと、次の起動時に取りこぼしを回収するもの)、セッションを閉じて次を開くと、この 2 つがほぼ同時に走る。同じ会話を掴む。片方は URL の抜粋名、もう片方は AI が付けた良い名前。互いの結果を知らないまま、それぞれ 1 枚ずつ書く──二重保存の真犯人は、この並走でした。おまけに片方が名乗るセッション ID は実在のファイルと一致しない幽霊 ID で、旧名を消す後始末が空振りしていたことまで割れました。
対策も会話で決めて、その場で入れました。書き出しをロックで直列化する。書き出すときに、同じ開始日時で本文が丸ごと一致する古い 1 枚を回収する。起動時の回収処理が長すぎてロックを取り損ねるので、1 回あたりの仕事を削って 54 秒を 14 秒にする。入れたあと、わざと 2 系統を同時に走らせる再現テストまでやって、新しい重複が出ないこと、逆に古い重複が回収されることを確かめました。
そして全体を数えさせたら、二重保存は URL 名のファイルどころではありませんでした。**72 グループ・94 ペア。**大半は「まともな題名どうし」の重複だったので、今まで気づかなかっただけでした。見出し 1 行を除いた本文の完全一致だけを根拠に 83 枚を一括削除し、先に手で消した分と合わせて延べ 100 枚超。残った会話ログは 179 枚。中身が同じものしか消していないので、会話は 1 件も失われていません。
セルの中身への雑談みたいな一言から、真犯人と再発防止まで。ここまでで、たぶん 1 時間くらいです。
Excel 側は 1 行 ── ただし正解は私が出した
掃除が終わって一覧を取り直すと、今度は Obsidian の設定ファイルが 10 件、一覧の先頭に並びました。保管庫フォルダの中に .obsidian という設定フォルダがあり、一覧マクロはサブフォルダまで拾うからです。
AI は「一覧側で除外してはどうか」という筋の提案をしてきたので、待ったをかけました。「それは根本を変えるということですよ」──一覧は、そこにあるものを正直に出す道具です。10 年以上そのルールで育ててきた。表示が気に入らないからと道具の原則を曲げるのは、本末転倒です。
ではどうするか。**シートごとに、そのシートだけサブフォルダを拾わない設定を持てるようにする。**これは AI の案ではなく、私が出した答えです。全体のルールは変えない。各シートが自分の事情を自分で持つ。マクロへの追加は、実質この 1 行でした。
If ActiveSheet.Range("M1").Value = 1 Then SKIP_SUB = True
ここからの分業が、今回いちばん書きたかった場面です。AI が最初に置いた設定セルに、私が注文を付けます。「数字を入れるだけでは分かりません。L1 に『サブ除外』とラベルを書いて、M1 に入力する形にしてください」。AI が置き直す。今度は私がマウスを握って、既存のラベルと同じオレンジ塗りと罫線に、その場で書式を整える。「もう少し形を整えました。よく見てください」と言うと、AI は開いているシートをスクリーンショットで撮って、私が整えた形を確認し、「取説シートの 11 番に説明を足してください」の指示で、既存の 10 項目と同じ型のマニュアルを書き足しました。
正直に言えば、セルの書式程度は「ほとんど私がやった方が早い」のです。実際そう言いました。でもそれでいい。**速い方がやればいい。**私はセルと書式を直し、AI はコードとログと文書を直す。同じブックを、両側から同時に触っているのですから。
ついでの小技をひとつ。修正のたびに一覧を全部取り直すと並び順が変わって、何が変わったのか目で追えなくなります。だから 1 件だけの修正のときは、AI にはセルの書き替えや行削除だけをさせて、並びを保たせました。人間が画面で確認できる形を保つ──これも運用の正解の一つで、コードのどこにも書いていません。
閉じたファイルでは、この会話は成立しない
さて、ここまでの数時間を成立させていた前提を、あらためて書きます。ブックは一度も閉じていません。
AI に Excel を触らせる方法は世の中にいろいろありますが、見かけるやり方の多くは「閉じたファイルを渡して、処理して、返してもらう」形です。ライブラリの都合でそうなります。それが悪いとは言いません。無人で大量のファイルをさばくなら、むしろそちらが正解です。
ただ、閉じたファイルを渡す方式は、たとえるなら調書だけ渡される探偵です。現場には入れない。「いま私が選択しているセル」も「たった今この手で整えた書式」も、調書には載りません。事件が終わってから、書類で報告を受けるだけです。
今回の AI は、現場に居ました。私が B25 を見ていれば B25 を読み、次に B37 に移れば B37 を読み直す。私が書式を整えれば、その画面を撮って確認する。修正はその場で実行されて、結果は 1 秒後に私の目の前のシートに出る。**「会話しながら直す」は、AI が現場に居るときにだけ成立します。**私の道具(VBAマネージャー・GitHub で公開しています)が最初から「開いたままのブックに相乗りする」設計なのは、このためです。
「直る」は入口だった
それで、表題の話です。
[AI修正] ボタンの記事を書いたとき、私が売りにしたのは「直る」でした。壊れたマクロがボタン一つで直って戻ってくる。それだけでも十分に事件でした。
でも、この夜の作業を振り返ると、起きていたのは修理ではありません。会話ログの保存系は原因ごと直り、再発防止とテストまで付きました。Excel には新しい設定機構が 1 行で生えて、マニュアルまで揃いました。どれも「作れ」と設計書を渡した覚えはなく、セルを眺めての雑談から始まって、会話の往復の中で形になったものです。
AI が VBA や Windows の知識を大量に持っていること自体は、もうみんな知っています。実際、私のファイル一覧の心臓部のフォルダ走査は、AI と組んで書き直してからは Windows API を直接呼ぶ非再帰方式で回っていて、事務員の独学 VBA では到達しなかった水準のコードです。でも、知識の豊富さは入口にすぎません。一発の指示で出てくるのは、よくできた既製品です。会話しながら作ると、道具は既製品ではなく、その現場の形に育ちます。「一覧は正直に出す道具」「並びは変えない」「ラベルがなければ分からない」──そういう、コードのどこにも書いていない家のルールが、往復のたびに焼き込まれていくからです。
前に「技術の正解と運用の正解は別物」と書きました。今回それに一つ足すなら、こうです。運用の正解を渡す一番速い手段は、仕様書ではなく、現場での会話でした。
事実と見立ての仕分け
例によって仕分けます。
事実:この記事の作業が 2026 年 7 月 31 日未明の 1 セッションで行われたこと(会話ログが残っています。今夜からは 1 枚だけ)。保存ログの 0.8 秒差と並走の再現テスト。重複 72 グループ・94 ペア、一括削除 83 枚、掃除後 179 枚(数字は公開前に再確認します)。マクロへの追加が実質 1 行であること。作業中ブックを閉じていないこと。
見立て:AI に Excel を触らせる公開事例の多くが閉じたファイル方式だ、という観測(網羅調査ではありません。この領域の地図は前に測りました=リンクは掲載順確定後に差し替え)。「会話しながら作ると道具が現場の形に育つ」という主張そのもの。
正直な線引き
開いたまま方式は万能ではありません。COM で操作できるローカルの Excel と、画面の前に人間が居ることが前提です。無人のバッチ処理や、大量ファイルの一括変換なら、閉じたファイルを渡す方式が向いています。今回の Obsidian 側の修正も Python スクリプトの話で、VBA だけで閉じた話ではありません。それから、この「ファイル一覧」ブック自体は以前書いたとおり未公開のままです。
あと、白状しておくと、この夜の冒頭で私は AI の返事の遅さに小言を言っています。会話で作るというのは、そういう遠慮のない距離感も込みです。
おまけ ── 動画にもなりました
冒頭でリンクした「会話するだけでマクロが直る」開発環境の話は、3分半の動画にもしてあります。合成音声のキャラクター二人が掛け合いで解説する形式です。
そして白状ついでに書いてしまうと、この動画自体も、AI との会話でほぼ自動で組み上がったものです。台本のテキストを 1 枚書けば、音声合成から立ち絵、映像の組み立てまで、AI と一緒に育てたパイプラインが走ります。**「会話するだけで作れる」のは、マクロだけではありませんでした。**この制作の仕組みの話も、いずれ書くかもしれません。
おわりに
探偵は現場に居ないと仕事になりません。調書をどれだけ積んでも、0.8 秒の物証は現場のログの中にしかありませんでした。
AI を現場に入れる線を 1 年引き続けてきて、この夜、その線の先に「直る」ではなく「作れる」が待っていたことが分かりました。次はいよいよ、何度も予告している「AI要約説明」を書きます。たぶん。
現場からは以上です。


