2
2

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 に評価させたら、関所を一週間閉めていた犯人がその AI だった話

2
Posted at

はじめに

前回は、深夜に Gemini へ「服を脱げ」と振ったら、世界一まじめな答えが返ってきた話を書きました。

あれから二日、秀エクセルマネージャーをかなり改修しました。きっかけは、オフィス田中の田中亨さんのページを読み直したことです。

改修がひと区切りついたので、Claude Code(Opus)に「どう仕上がったか、評価してください」と頼みました。返ってきた評価の中に、弱点として「秀コンボが重い」という一行がありました。

それなら直してもらおう、と測らせてみたら、重いのは秀コンボではありませんでした。道具の側の検査が、一回に 141 秒かかっていました。その遅い数え方を書いたのは、三か月前の Claude 自身でした。

今回は、その二日間の改修の告知と、犯人探しの顛末です。

TL;DR

  • 田中さんの「ワークシート診断ツール」に学んで、ブックの中身(値)を出さずに、形だけを AI に渡す手を入れました。Excel だけで動く版も、秀コンボの棚の 126 本目に入れました
  • 改修の評価を Claude に頼んだら「秀コンボが重い」と出たので、測らせました。**秀コンボ自体は軽く(開くのに 1.2 秒)、重かったのはマクロを点検する道具の check(141 秒)**でした
  • 原因は、変数が使われているかを数える部分です。「行の数 × 変数の数」だけ検索をやり直していて、一回の点検で約 3,300 万回。数え方を変えて 3.6 秒になり、結果は前と 1 件も変わりません
  • そのせいで、マクロの関所(gate)が 9/26 から、マクロの良し悪しに関係なく不合格を出していました。今は 17 秒で通ります
  • 書いたのは Gemini ではなく、6 月 14 日の Claude でした
  • ついでに、道具の説明文が長すぎて 2,048 字目から先が AI に届いていなかったことも見つかりました

二日間でやったこと(田中さんに学んで)

田中さんは、私の道具の考え方の根っこにいる人です。「マクロは作業に使う」という言葉は、以前の記事にも書きました。

その田中さんが、十数年前から「ワークシート診断ツール」を公開しています。

ページを読むと、いまの使い方として、AI に相談するときはブック本体ではなく、診断ツールが出した診断結果のブックを添付する、と書かれていました。ブックの中身は出さずに、どんな数式や名前やマクロが入っているかという「形」を渡す。AI に要るのは値ではなく構造だ、という考え方です。

職場で AI が使えない一番の理由は「中身を外に出せない」ことなので、これはそのまま取り入れることにしました。二日間で入れたのは、だいたい次のとおりです。

  • structure:値を一つも出さずに、ブックの形(シート・名前・数式の型・入力規則・ピボット・クエリ・マクロの点検)を一枚にまとめる
  • no-values on:以後、表を読む手も直す手も値を出さず、番地と型だけを返す
  • 秀コンボの棚 126 本目「ブックの構造を一覧にする」:同じことを Python も AI も使わず、Excel だけで。何も入れられないパソコン向け
  • Excelコンボで「#N/A になる原因を教えて」と聞くと、ブックの構造を自動で添える
  • 式がおかしいときの「原因」を、式と値から道具が決める段

手元の普段使いのブック 15 本で確かめて、反応しなかった物は外したり静かにしたりもしました。

評価してください、と頼んだら

ひと区切りついたところで、Claude に「いろいろ改修したけど、どう仕上がっているか評価してください」と頼みました。

返ってきた評価は、強いところと弱いところに分かれていました。強いところは、先撃ち(AI に考えさせずに棚のマクロを撃つ)と、値を出さない診断。弱いところの一つが「秀コンボが重い」で、根拠として呼び出しの記録から次の数字が挙がっていました。

  • マクロを足す手(add-procedure)が最長 267 秒
  • マクロの関所(gate)が約 140 秒

それなら直さなきゃダメでしょう、特に秀コンボは、と返しました。

測ったら、重いのは秀コンボではなかった

Claude はまず秀コンボそのものを測りました。

測ったもの 秒
秀コンボ(36 部品・40,940 行)を開く 1.19
棚のマクロを初めて撃つ 0.17

軽い。重いのは本体ではありません。

そこで記録を読み直すと、マクロを点検する check が、秀コンボに対して 141 秒かかっていました。関所の gate は、この check を 120 秒の制限時間の中で回します。check だけで制限時間を使い切っていたわけです。

267 秒のほうは別件で、窓の無い Excel が裏に残っていたのを掴んで待ち続けたもののようです。

check の中を計測すると、こうなっていました。

回数
文字列の検索 32,934,908
検索パターンの作り直し 13,303,074

原因は、変数が使われているかを数える部分でした。モジュールの行を一行ずつ見て、その一行ごとに、宣言されたすべての変数の名前で検索をかけ直していました。たとえば一万行のモジュールに変数が二千個あれば、それだけで二千万回です。

数億回もやってるなら、そりゃ時間がかかるだろう、と私は言いました。そのとおりでした。

直し方は単純です。一行を一度だけ語に分けて、出てきた語を数える。検索は行の数だけで済みます。

check の秒
直す前(9/26 の記録) 141
直した後(秀コンボの写し・Excel から読む時間込み) 3.6

直す前と後で、出てくる警告は 1,117 件、1 件の違いもありませんでした。

こっちか

関所が一週間、閉まっていた

困るのは遅さそのものより、関所が使えなくなっていたことです。

gate は、マクロを直したあとに「で、通ったのか」を機械が一言で答える関所です。秀コンボの写しを別の Excel で開き、点検とコンパイルとテストを通して、合格か不合格かを返します。

その関所が、9/26 から、

判定: 不通過(FAIL)  理由: 最後まで通せませんでした: RPC サーバーを利用できません / 時間切れ(120秒)

と言い続けていました(9/26 に 2 回、9/29 に 1 回)。番人が書類の数えに手間取っているうちに門限が来て、旅人を確かめもせずに追い返していたようなものです。しかも出てくる言葉が「RPC サーバー」なので、誰が見ても Excel が落ちたように見えます。実際、見た側(AI も)はそう片付けていました。

直したあと、同じ秀コンボで関所を通し直しました。

判定: 通過(PASS)  構文エラー 0・全体コンパイル OK・テスト 8/8 成功  (17.0秒)

一週間ぶりに、門が開きました。

開いた

犯人は

ここまで来て、私は聞きました。これは Gemini がやったのか、と。ここしばらく、道具の手入れを Gemini にも頼んでいたからです。

Claude が古いリポジトリの履歴をたどると、遅い数え方が入ったのは 6 月 14 日、check というコマンドを作ったときのコミットでした。Gemini が道具を触り始めたのは 9 月 13 日です。

お前が悪かったのか、と聞くと、

はい、私です。

と返ってきました。

六月の時点ではモジュールが小さく、遅さは表に出ませんでした。棚が増えて秀コンボが四万行に育ったところで、ちょうど限界を越えた、ということのようです。

お前か

ついでに見つかったこと

道具の説明文が、途中で切れていました。 MCP の道具には、AI 向けの説明文が付いています。秀エクセルマネージャーの主な道具の説明文は 2,663 字ありましたが、Claude Code は 2,048 字で切ります。後ろの四割、「十手を超える組み立ては、一手ずつ撃たずにマクロ一本に書く」などの大事な段が、AI に届いていませんでした。1,570 字に縮めて、2,000 字を超えたらテストで落ちるようにしました。

ほかにも「他に直すところがないか」と点検させました。読むだけのコマンド 18 本を秀コンボに撃って、全部 5 秒以内。check のような遅さは、ほかにはありませんでした。AI がよく外していた引数の形(--book を付ける、など)は、道具の側で受け止めるようにしました。

機能が、使われ方より先に増えていた

評価には、もう一つ弱点がありました。「実際の使われ方より先に、機能が増えている」。これは私も思っていたことです。

呼び出しの記録(9/16〜10/2・7,656 回)を、対象にしたブックで分けると、こうでした。

対象 回数
秀コンボ自身 4,807(63%)
お試し版 Excelコンボ 799
試しの表 約 1,000
普段使いのブック 数十

道具が、ほとんど自分自身を作るために使われていました。

Claude は整理の案(使う人の道具と、棚を鍛える回路を分ける、など)を出してきましたが、量で困っていることは無いので、今のままで使ってみることにしました。使わない機能は撃たなければ何もしませんし、AI が読むのは説明文だけです。要る・要らないは、使って詰まったところから決めます。

事実と見立ての仕分け

事実 見立て
重さ 秀コンボは開くのに 1.2 秒。遅かったのは道具の check(141 秒→3.6 秒) 「重い」と言われたら、本体より先に記録を読む
関所 9/26・9/29 の gate は 3 回とも、点検の途中で時間切れになって不合格。今日は 17 秒で合格 失敗の言葉が「RPC サーバー」だと、誰でも Excel のせいにする。片付けた失敗の中に犯人がいた
犯人 遅い数え方は 6/14 の check 新設のコミットから。Gemini の関与は 9/13 以降 小さいうちは見えない作りが、育つと効いてくる
説明文 2,663 字のうち、2,048 字目から先が AI に届いていなかった 書いた注意は、届いているかまで確かめる
使われ方 呼び出しの 63% は秀コンボ自身 使われ方の答えは、まだ記録に無い

正直な線引き

  • 直した道具は GitHub に上げてあります(4afda78・487a201)。説明文の短縮は、MCP を立ち上げ直したときから効きます

  • 窓の無い Excel が裏に残っていると、道具がそれを掴んで 2〜4 分待つことがあります。まだ再現できていないので、直していません
  • 値を出さない手(structure・no-values)は、値を出さないことを試しのブックと手元のブック 5 本で確かめました。どんなブックでも漏れないとまでは言えません
  • 開発中のまま公開しています

おわりに

関所は、いまは 17 秒で開きます。

しばらくは足さずに、使ってみます。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?