Claude CodeでVBAのマクロを作ったり直したりするとき、私はこれまで「VAコード」を使っていました。VBAのモジュールをフォルダに書き出し、Claude Codeに編集してもらい、またVAコードでWordに読み込んで、Wordで動かして確かめることを繰り返していました。それでも、クリップボード経由でコードの受け渡しを行うよりは、ずいぶん効率的でした。
ところが、先日、実はフォルダやクリップボードへの書き出しも読み込みも要らないことを知りました。Claude Codeは、起動中のWordのVBAを直接書き換えられるのです。
「Claudeはエクスポートできないのか?」
先日、自作のWordアドイン「VA公用文」を改修したときのことです。Claude Codeは、いつもの手順どおり、VAコードでモジュールを書き出すよう勧めてきました。そこで私は、こう聞いてみました。
「Claudeはエクスポートできないのか?」
答えは「できます」でした。Wordが起動していれば、Claude Codeが外からWordに接続して、VBAのコードを読み書きできるというのです。
そこから先は、コードを直してWordに反映し、テスト用の文書でマクロを動かして結果を確かめるところまで、Claude Codeが一続きで行ってくれました。私がしたのは、報告を読んで「次に進んで」と答えることと、判断を求められたときに答えることだけです。
始めるには
この方法は、Windows版のWordやExcelで使えます。Officeには、外部のプログラムから操作できる仕組みが以前から備わっていて、Claude Codeはそれを使っています。
必要な設定は、[ファイル]→[オプション]→[トラスト センター]→[トラスト センターの設定]→[マクロの設定]にある「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」をオンにすることだけです(VAコードを使う場合にも必要な設定です)。悪意のあるマクロに悪用されるおそれがあるため、初期状態ではオフになっています。
あとは、Wordで直したい文書を開いておき、Claude Codeに「起動中のWordのVBAを直接書き換えて、この不具合を直して」と頼むだけです。
Claude Codeの導入と基本的な使い方は、次の記事で紹介しています。
VAコードはどうなるのか
Windowsで、Claude Codeを使って開発するのであれば、VAコードは必須ではなくなりました。Claude Code以外のエディタやAIでコードを編集する場合や、改修の前にコードを控えとして書き出しておきたい場合には、引き続き役に立ちます。(たぶん、そんなことはないと思いますが...)



コメント
記事を短くし、Claude CodeでVBAを直接編集できることを中心にまとめ直しました。