「毎週おなじ集計をExcelで手作業している」「マクロを組めば速くなるのは分かるけど、VBAが書けない」。そんなときは、生成AIにVBAのコードを書いてもらうのが近道です。結論から言うと、やりたいことを日本語で具体的に伝えれば、ChatGPTやClaude、Excel内蔵のCopilotがマクロのたたき台を出してくれます。プログラミングの知識がなくても、貼り付けて動かすところまでたどり着けます。
この記事では、AIにVBAを書いてもらう頼み方、そのまま使えるプロンプト例、そして動かす前に必ずやりたい安全チェックまでを、順番に説明します。
<!-- FIGURE: 記事全体を表すアイキャッチ(日本語の指示→AI→VBAコード→Excelで実行、の流れ) -->まず全体の流れ(3ステップ)
VBAを一度も書いたことがなくても、次の3ステップで動かせます。
- やりたいことを日本語で書き出す(どのシートの、どの範囲を、どうしたいか)
- AIにVBAコードを書いてもらう(プロンプトで具体的に伝える)
- Excelに貼り付けて、小さなデータで試す(うまく動くか確認してから本番へ)
大事なのは「いきなり本番ファイルで動かさない」ことです。理由は後半の安全チェックで詳しく触れます。
<!-- FIGURE: 3ステップ(書き出す→AIに頼む→試す)の横並びフロー図 -->ステップ1:やりたいことを言葉にする
AIに丸投げしてもうまくいかない一番の原因は、指示があいまいなことです。VBAは「どのセルを・どう動かすか」がすべてなので、次の項目を先に決めておくと精度が上がります。
- 対象:どのファイル・どのシート・どの列/行か(例:「Sheet1のA列」)
- 条件:どうなったら処理するか(例:「B列が空欄の行」)
- やること:コピー・削除・色付け・別シートへ転記・PDF出力など
- 結果:どこに、どんな形で出したいか
たとえば「請求書フォルダのExcelを1つにまとめたい」なら、「複数ファイルを開いて」「各ファイルの2行目以降を」「1つのシートに縦に積む」と分解できます。ここまで言葉にできれば、あとはAIの仕事です。
ステップ2:AIに頼む(コピペで使えるプロンプト)
ここが本題です。そのまま貼って使えるプロンプトの型を紹介します。【】の中を自分の状況に書き換えてください。
あなたはExcel VBAに詳しいエンジニアです。
以下の作業を自動化するVBAマクロを書いてください。
# やりたいこと
【例:Sheet1のA列で、B列が空欄の行だけを黄色で塗りつぶす】
# 前提
- Excelのバージョン:【Microsoft 365 / 2021 など】
- データの開始行:【2行目から(1行目は見出し)】
- データ量:【約500行】
# お願い
- コードには日本語のコメントを各行に付けてください
- 初心者向けに、貼り付け方と実行方法も手順で教えてください
- 途中で消えると困るので、元データは書き換えないでください
ポイントは3つあります。1つ目はバージョンを伝えること。VBAはExcelのバージョンで動きが変わることがあるためです。2つ目はコメントを付けてもらうこと。あとで自分で少し直したいときに、どの行が何をしているか読めると安心です。3つ目は「元データを書き換えないで」と釘を刺すこと。AIは気を利かせて上書きするコードを書くこともあるので、先回りして防ぎます。
ChatGPT・Claude・Geminiのいずれでも同じ型が使えます。筆者が試した範囲では、コメントの丁寧さや「実行手順まで書いて」への対応はモデルによって差があるので、うまくいかないと感じたら別のAIに同じプロンプトを投げてみるのも手です。
<!-- FIGURE: プロンプトの型(やりたいこと/前提/お願いの3ブロック)を示した図 -->エラーが出たときの頼み方
一度で完璧に動くとは限りません。エラーが出たら、エラーメッセージをそのままコピーして貼るのが最速です。
さっきのマクロを実行したら、次のエラーが出ました。
原因と、直したコード全文を教えてください。
【実行時エラー '1004': アプリケーション定義またはオブジェクト定義のエラーです】
【エラーが出た行:Range("A" & i).Copy】
「エラー番号」と「止まった行」を渡すと、AIは原因を絞り込みやすくなります。ここでAIが自信たっぷりに間違った直し方を出すこともある(いわゆるハルシネーション)ので、直したコードも必ず小さなデータで試してください。
ステップ3:Excelに貼り付けて試す
コードを受け取ったら、次の手順で動かします。
- Excelで
Alt+F11を押して「VBエディター」を開く - メニューの「挿入」→「標準モジュール」を選ぶ
- 開いた白い画面にコードを貼り付ける
F5キー、または「実行」ボタンで動かす
必ずコピーしたファイルで試してください。 本番ファイルをいったん複製し、さらにデータを数十行に減らしたもので確認するのが安全です。思った動きと違っても、コピーなら元に戻せます。
筆者が初めてAIにVBAを書いてもらったときは、20件ほどのテストデータで3回作り直して、ようやく思い通りになりました。所要時間は15分ほど。手作業なら毎回30分かかっていた転記作業だったので、一度作ってしまえば以降はボタン1つです。最初の試行錯誤を惜しまないことが、結局いちばんの近道でした。
Excel内蔵のCopilotという選択肢
コードを外部のAIに貼るのが不安な場合は、Microsoft 365に含まれるCopilotを使う方法もあります。Excelの画面から日本語で指示すると、VBAコードの生成や説明をしてくれます。シートの中身を踏まえた提案が出るのが利点です(利用にはMicrosoft 365 Copilotのライセンスが必要で、提供内容は更新されることがあります。最新の対応状況は公式情報でご確認ください)。
会社のデータを扱う場合は、そもそも外部AIに社内情報を貼ってよいか、勤務先のルールを先に確認しておきましょう。
動かす前の安全チェック(ここは飛ばさない)
AIが書いたコードは、中身を理解しないまま実行しないのが基本です。最低限、次を確認してください。
- 元データを消す・上書きする命令はないか(
Deleteや広い範囲への代入に注意) - 外部に接続する処理はないか(見覚えのないURLやファイル書き出し先がないか)
- マクロ付きファイル(.xlsm)を人に渡すときは中身を説明できるか
「AIが書いたから安全」ではありません。実行するのは自分なので、コメント付きコードを一読し、分からない行はAIに「この行は何をしていますか」と聞いて理解してから動かすと安心です。
<!-- FIGURE: 実行前チェックリスト(元データ保護/外部接続なし/コピーで検証)のカード図 -->もっと自分でも読めるようになりたいなら
AI任せでも動かせますが、簡単なVBAを自分でも読めるようになると、修正が一気に速くなります。体系的に学びたいなら、Excel VBAの入門講座を1本通してみるのがおすすめです。動画で手を動かしながら学べるUdemyPRには、マクロ初心者向けの講座が揃っています。紙の本でじっくり進めたい人は、AmazonPRでVBA入門書を探すのもよいでしょう。
本記事はアフィリエイトリンクを含みます(PR)。まずは無料のAIで小さなマクロを1つ作ってみて、「これは便利だ」と感じてから学習に投資するのが失敗の少ない順番です。
まとめ
- やりたいことを「対象・条件・やること・結果」に分解してから頼む
- プロンプトにはバージョンと「元データを書き換えないで」を必ず入れる
- 受け取ったコードは、コピーした小さなデータで試してから本番へ
- エラーはメッセージごと貼れば直してもらえる
- 実行前に、消す・上書きする・外部接続する命令がないか一読する
VBAが書けないことは、もう自動化をあきらめる理由になりません。まずは毎週やっている面倒な作業を1つ選んで、AIに頼むところから始めてみてください。