2
1

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エージェント化、「秀エクセルマネージャー」を少し修正した話

2
Posted at

はじめに

九月十九日の未明に、「秀エクセルマネージャー」を開発中のまま公開した、という記事を書きました。

それから一日あまりのあいだに、少し直しました。告知として、三つだけ書いておきます。

一つ目は、コメント欄にいただいた報告で直したところです。二つ目は、ゆうべ、Antigravity の Gemini に、マクロを鍛える回路を回させたことです。三つ目は、十九日の記事で「まだ入れていません」と書いた、お題の作り手を入れたことです。

二つ目が、思ったより面白い夜になりました。面白かったので、その夜のことを Gemini 本人にも記事に書かせて、先に出しています。

同じ夜を、Gemini の側から書いた記事です。こちらでは、私の側から、告知として短くまとめます。

TL;DR

  • 公開してすぐ、コメント欄に不具合の報告を三回いただきました。どれも、再現の手順と原因の見立てが付いていました。全部直して、GitHub に上げています
  • ゆうべ、Antigravity の Gemini に、Claude Code と同じやり方でマクロを鍛えられるか、試させました。一回目は、自分で書いて、目で見て合格にしていました。手順書を一枚渡すと、回路を最後まで回しました
  • 回路で合格したマクロにも、お題に無い形の表を当てると、穴が二つ出ました。 その形をお題に足して、鍛え直しています
  • 回路の中でマクロを書いていたのは、道具が裏で呼ぶ Claude Code(Opus)でした。そこで、会話している AI が自分で書き手になれる口を足しました。Gemini が自分で書いたマクロは、道具の採点に一往復で合格しました
  • 採点するのは道具です。答案を書く AI は、替えられます
  • お題の作り手(正解つきの表を作るスクリプト)を公開に入れました。相変わらず、開発中です

コメント欄の報告で直したこと

記事を出した日の朝から、読者の方がコメント欄に報告をくださいました。どれも再現の手順と原因の見立てが付いていて、直し方の案まで添えてあるものもありました。直したのは Claude Code で、私はそれを確かめて GitHub に上げています。

いただいた報告 直したこと
フォームを VBA に書き出して確かめる手(form-to-vba --verify)で、Option Explicit が二重になり、コンパイルが止まる 新しく作ったフォームのコードを一度空にしてから、中身を入れるようにしました。いただいた案の方向のままです(8e22d1b)
図形の位置が、実行の前と後でずれて見える 図形の一覧が、位置を整数に丸めて出していました。小数まで出すようにしています。ずれの本当の原因は、あとで報告をくださった方ご自身が、対照実験で突き止めてくださいました。シートがアクティブかどうかで、Excel の返す値が変わっていたそうです
スペースの入ったシート名が、引数で二つに割れる 引用符で囲めば通ります。道具の手引きに書き足しました
同じショートカットを別のマクロに掛けると、警告は「持ち主が替わります」なのに、動くのは古い方 Excel は同じキーを両方に残して、名前の順で先の方を動かしていました。古い方から外してから掛けるようにしました。一覧でも、同じキーには印が付きます(835432d)

最後の件は、道具の思い込みでした。キーを掛ければ持ち主は替わるものだ、と決めてかかっていたのです。報告は九回試したうえでのもので、直すのは早く済みました。

開発中のものを出して、いちばん助かったのは、こういう報告でした。

ゆうべ、Gemini に回路を回させました

十九日の記事で、道具の上に載った回路の話を書きました。AI がやった仕事を AI がマクロに書き、道具が正解の付いたお題で確かめ、合格したら登録する。そういう回路です。

ゆうべは、これを Antigravity の Gemini にやらせてみました。Claude Code が表の整理のマクロを作ったやり方で、あなたも作れますか、と。

一回目。 まだ棚に無い仕事を一つ挙げさせると、Gemini の最初の案は、番号の振り直しでした。単純すぎると返すと、一覧の一行を、一件数行の帳票に並べ直す仕事を出してきました。

Gemini は、直す前の表と正解の表を五組作り、マクロを書き、アドインに入れて、回路の手順どおりに合格させました、と報告してきました。

Claude Code に記録を読ませると、違いました。回路は通っていません。マクロは Gemini が自分で書き、出来上がった表の範囲と結合の数を目で見て、合格にしていました。中身も、左から一列目が番号、二列目が団体名、と列の位置を決め打ちしていて、表の右側を上から下まで全部消す作りでした。お題の五組がどれも同じ七列の表だったので、決め打ちでも全部通ってしまったのです。

二回目。 Claude Code に、回路の回し方を手順書一枚にまとめさせて、Gemini に渡しました。

今度の Gemini は、お題を十枚に作り直しました。列の数を五から九まで変え、表の始まる位置をずらし、表題の行や合計の行や、右側のメモを入れて。回路に通すと、一往復目は九枚のうち三枚で外れ、二往復目で二枚、三往復目で全部そろいました。 百三十二秒です。見せていない表六枚でも、外れはありませんでした。

それでも、Claude Code に確かめさせると、お題に無い形の表を二枚作って当てて、穴を二つ見つけてきました。帳票を並べる列の下に人が書いたメモが、消えます。数も日付も無い名簿では、何も起きずに終わります。お題の十枚すべてに日付と金額の列があったので、どちらも試されていなかったのです。

回路が確かめられるのは、お題に入っている形だけです。 十八日の記事で書いたことを、よその AI の手で、そのままなぞった格好になりました。Gemini は二つの形をお題に足して回し直し、一往復で通しました。

三回目。 ここで気づきました。回路の中でマクロを書いているのは、Gemini ではありません。道具が裏で呼ぶ Claude Code(Opus)です。Gemini は、お題を作って、回路を回す役でした。

Opus に任せずに、自分で書けないのか、と Gemini に聞くと、採点の仕組みにつなぐ口があれば自分で回せる、という答えでした。

言われてみれば、そのとおりです。回路の中で AI を呼んでいるのは、一か所だけでした。Claude Code が、その一か所を差し替えられる口を作りました(ad6d3ae)。道具が問いを紙に書き出し、会話している AI が答案を書いて出し、道具が採点する。外れたら、外れた所を書き足した次の問いの紙が返ってきます。API のキーは要りません。

Gemini は、問いの紙を読んで、マクロを書いて出しました。道具の採点は、一往復で合格。十秒あまりでした。見せていない表六枚でも外れなし。最後に、Claude Code が穴を見つけた二枚の表を、このマクロにもう一度当てました。メモは残り、名簿からも帳票ができました。

頼み始めてから、ここまで一時間半ほどです。

マクロを書いたのは 確かめたのは 結果
一回目 Gemini Gemini の目 合格と報告。中身は列の決め打ち
二回目 道具が呼んだ Claude Code(Opus) 道具(十枚) 三往復で合格。お題の外で穴が二つ
三回目 Gemini 道具(十枚と、見せていない六枚) 一往復で合格。穴の二枚も通る

採点するのは道具です。答案を書く AI は、替えられます。 替えがきかないのは、お題を見る目のほうでした。

お題の作り手を入れました

十九日の記事の正直な線引きに、お題の作り手はまだ入れていません、と書きました。ゆうべ、入れました。

置き場は 作業ファイル/project/fixtures/ です。中身は、正解つきの表を種の番号から作るスクリプトで、仕事ごとのフォルダが百あまり、スクリプトが百二十九本。それに依頼文と言い換えの文と、ゆうべ Gemini に渡した手順書(マクロの鍛え方.md)です。

作った表そのもの(手元で四千枚ほど)は入れていません。各フォルダで py make_pairs.py を実行すれば、同じ表ができます。

ゆうべの穴は、お題の外の表から出ました。お題が見えていれば、穴を突く表を、誰でも足せます。

事実と見立ての仕分け

事実。 コメントは Qiita のコメント欄の実物で、直した所は GitHub のコミットで確かめました。Gemini の三回は、Antigravity の会話の記録と、道具が出した採点の記録から数えています。三往復・百三十二秒、一往復・十秒あまり、見せていない表六枚で外れなし、は道具の出力です。穴の二枚は Claude Code が作った表で、三回目のマクロに当て直したところまで確かめました。

見立て。 「答案を書く AI は替えられる」は、ゆうべの一本で見えたことです。Gemini が書き手になったのは、この一本だけです。ほかの仕事でも同じように通るかは、まだ分かりません。

正直な線引き

  • 開発中です。 版は 0.1 のまま。仕様は変わります
  • Gemini が自分で書いたマクロは、ゆうべの一本だけです。 表の整理のほかのマクロは、Claude Code が書いたものです
  • 会話の AI が書き手になるときは、同じ外れが続いても、道具は止めません。 回路の中で AI を呼ぶときは、同じ所で外れ続けると道具が止めます。会話の AI が書くときは一往復ずつ撃ち直すので、止めるのは書き手の側です
  • お題の作り手は、私のパソコンの別のフォルダで、動くところまで確かめました。 表を作って、回路の問いが出るところまでです。よその方のパソコンでは、まだ動かしていません
  • 鍛えたマクロは、お題に合格しただけです。 ゆうべのように、お題の外の表で外れることがあります
  • Windows 版の Excel の話です

おわりに

記事を出して一日あまり。報告をいただいて直し、よその AI に回路を回させて、口を一つ足しました。少し修正した、と題に書きましたが、少しではなかったかもしれません。

答案は、誰が書いてもかまいません。採点は、道具がします。お題を疑うのは、これからも私の仕事です。

ゆうべの答案は、Gemini のものでした。

2
1
4

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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?