
AIを使ったVBAの作成や修正は、問題なくできているでしょうか?

最近は、Claude Codeを使うことが多くなりました。GASであればClaspというツールを使って入出力が簡単にできるのですが、VBAの場合は適当なツールがありません。

WindowsでClaude Codeを使うのであれば、Claude CodeにWordやExcelを直接操作させて、VBAを書き換えてもらう方法があります。エクスポートやインポートの手間もかかりません。

それは便利ですね。では、VBAのコードをファイルとして出し入れする道具は、もう要らないのでしょうか。

Claude Code以外のエディタやAIで編集する場合や、コードをファイルとして書き出して保管しておきたい場合には、やはりあると便利です。各モジュールをファイルとしてエクスポートしたり、それらをプロジェクトにインポートしたりできるマクロを作ってみましょう。

お願いします。
サンプルのダウンロード
Windowsをご利用の場合は、こちらの統合版をダウンロードしてください(自動でインストールできます)。
統合版のインストーラーを使わない場合は、こちらをダウンロードして手動でインストールしてください(VAコードはWindows専用です)。
インストールマニュアル
操作マニュアル
Claude Codeで開発する場合
WindowsでClaude Codeを使ってVBAを開発する場合は、Claude Codeに起動中のWordやExcelを直接操作させる方法をお勧めします。Claude Codeがコードを書き換えたあと、そのままVBAプロジェクトに反映し、コンパイルや動作確認まで行うので、VAコードでエクスポートやインポートをする必要がありません。やり方は、次のコラムで紹介しています。
VAコードは、次のような場合に使ってください。
- Claude Code以外のエディタやAIで編集する場合:コードをファイルとして書き出せば、どのエディタでも編集できます。
- コードを控えとして保管したり、共有したりする場合:改修の前に、全モジュールをファイルとして残しておけます。
直接操作する方法でも、VAコードと同じ形式(モジュールごとのファイルと manifest.json)でファイルを扱うことができます。両者は併用できます。
マニュアル
ボタン
リボンの「VA」タブの「VAコード」グループに、「VBAインポート/エクスポート」ボタンがあります。Word用・Excel用とも同じです(Windows専用)。
- VBAインポート/エクスポート:VAコードの画面を開きます。選んだファイルのすべてのモジュールを、フォルダにテキストファイルとして書き出したり(エクスポート)、フォルダのファイルから取り込んだり(インポート)します。
初めの設定
VAコードは、VBAのモジュールを読み書きするため、WordまたはExcelで次の設定が必要です。
- [ファイル]→[オプション]→[トラスト センター]→[トラスト センターの設定]を開きます。
- [マクロの設定]で、「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」にチェックを入れます。
この設定は、マクロウイルスに悪用されるおそれがあります。開発に使うパソコンだけで設定してください。
使い方
- ファイルを開く:コードを書き出したい(取り込みたい)WordまたはExcelのファイルを開きます。
- ボタンを押す:「VBAインポート/エクスポート」を押すと、VAコードの画面が開きます。「VBAプロジェクト」のリストから対象のファイルを選ぶと、そのファイル用のフォルダが「フォルダ(ファイル)」に表示されます。フォルダを変えるときは「変更」を押します。
- エクスポート:「↓ エクスポート」を押します(フォルダが未設定なら、ここで選びます)。確認で「OK」を押すと、全モジュールがファイルに書き出され、「○ 個のモジュールをエクスポートしました。」と表示されます。
- 編集する:書き出したファイルを、エディタやAIで編集します。
- インポート:「↑ インポート」を押します。取り込むモジュールの名前(10個まで)と「既存の同名モジュールは上書きされます。」が表示されるので、「OK」を押します。「インポート成功: ○ / ○」と表示されます。
- 保存する:取り込んだコードは、ファイルを保存するまで、ファイルには書き込まれません。Ctrl+S で保存します。
ファイルごとのフォルダと、最後に選んだファイルは記録され、次に開いたときに初めから選ばれています。
新しく作るとき
コードのないファイルから作る場合は、次の手順で始めます。
- 新しいWordまたはExcelのファイルを作って保存します。
- VBE(Alt+F11)で、使うモジュール(標準モジュール・クラスモジュール・ユーザーフォーム)を挿入します。コードは空のままでかまいません。
- VAコードでエクスポートすると、各モジュールのファイルと manifest.json ができます。あとは、編集とインポートを繰り返します。
注意点
- 取り込むと、同じ名前の標準モジュール・クラスモジュールは、いったん削除して作り直します。コードは丸ごと置き換わります。
- フォームは、コードだけを置き換えます。画面の配置(ボタンなど)は変わりません。
- ThisDocument・ThisWorkbook・シートなどの文書モジュールは、すでにあるものだけを置き換えます。
- 取り込むのは、manifest.json に書かれたモジュールだけです。フォルダにファイルがあっても、manifest.json になければ取り込みません。manifest.json に書かれていてもファイルがないモジュールは、飛ばします。
- VAコード自身のプロジェクトには取り込めません(「VAコード自身へのインポートはできません。」と表示されます)。
- 取り込みは、Ctrl+Zでは元に戻せません。大事なファイルは、取り込む前にエクスポートして控えを残してください。
- パスワードで保護されたプロジェクトや、Wordのアドインとして読み込まれただけのテンプレートは、リストに表示されません。
書き出すファイルは、UTF-8(BOMなし)・改行はCRLFです。標準モジュールと文書モジュールは「.bas」、クラスモジュールは「.cls」、フォームは「.frm」(コードだけ)になります。ほかのエディタで編集するときや、新しいモジュールを加えるときは、manifest.json を次の形式で書きます(type は Standard・Class・Form・Document のどれか)。
{
"project": "プロジェクト名",
"modules": [
{"name": "basMain", "type": "Standard", "file": "basMain.bas"},
{"name": "ThisWorkbook", "type": "Document", "file": "ThisWorkbook.bas"},
{"name": "MyClass", "type": "Class", "file": "MyClass.cls"},
{"name": "MyForm", "type": "Form", "file": "MyForm.frm"}
]
}




コメント
次のとおり変更しました。(Ver506)[マクロ]ダイアログに表示されるマクロを、固有の名前の『VACode_ShowMenu』1つにしました(VAクリップと同時に使うと、同じ名前のマクロが『VA_Code.basMain.Main』のように重複して表示されていたため)。
仕様を、利用者向けのマニュアル(ボタン・初めの設定・使い方・注意点)に置き換えました。manifest.json の形式は、注意点に残しました。