株式会社ウェステリア 相談する

マクロをAIに作らせる——VBAをChatGPTで書く手順と直し方

マクロ(VBA)はExcelの操作を自動化する昔からある仕組みですが、書ける人が社内にいないことが長年の壁でした。生成AIの登場でこの壁は大きく下がり、日本語で頼めば貼り付けて動くコードが返ってくる時代になっています。この記事では、頼み方・直し方・残し方の3点を順に説明します。

結論から

  • VBAの知識がなくても、生成AIに日本語で頼めば実用的なマクロを作れる時代になりました。壁は「書くこと」から「正しく依頼し、確認すること」に移っています
  • 依頼のコツは、表の構成・やりたい処理・完了条件の3点を具体的に伝えることです。曖昧に頼むと、曖昧なマクロが返ってきます
  • AIで作ったマクロこそ属人化しやすいものです。プロンプトと仕様メモを残す習慣をセットにしてください

マクロ作成の壁は「書く」から「頼む」へ

マクロ(VBA)は、Excelの操作を自動化する昔からある仕組みです。転記・整形・印刷・ファイル分割など、手順が決まった作業なら大抵のことができます。ただ、プログラミング言語であるVBAを書ける人が社内にいない——これが長年の壁でした。

生成AI(ChatGPT・Claude・Copilotなど)の登場でこの壁は大きく下がりました。「A列の日付が今月の行だけを別シートに写すマクロを作って」と日本語で頼めば、貼り付けて動くコードが返ってきます。書けない人が使えるようになった一方で、動くかどうかの確認と、業務に合っているかの判断は依然として人の仕事です。

依頼のプロンプトの型——3つの情報を渡す

AIへの依頼文(プロンプト)に次の3点を入れると、一度で動く確率が大きく上がります。

依頼文の例です。「シート『売上一覧』の1行目は見出しで、A列に日付、B列に支店名、C列に金額が入っています。B列の支店名ごとに新しいシートを作り、その支店の行をコピーするVBAマクロを書いてください。同名のシートが既にある場合は中身を消してから書き込んでください。処理が終わったら『完了』とメッセージを出してください」

逆に「売上データを支店ごとに分けるマクロを作って」だけだと、AIは表の構成を推測で補うため、自分のファイルでは動かないコードが返ってきがちです。「AIは自社のファイルを見ていない」という当たり前の前提を忘れないことが、うまく頼む最大のコツです。

  • 表の構成。シート名、何行目が見出しか、各列に何が入っているか
  • やりたい処理。何をどこからどこへ、どういう条件で
  • 完了条件と例外。処理が終わったらどうするか、データが空のときはどうするか

動かないときの直し方

一度で動かないことは普通にあります。エラーが出ても、次の手順で大抵は解決します。

大事な作法が2つあります。必ずファイルのコピーで試すこと(マクロによる変更は元に戻せない操作が多いためです)。そしてテスト用の小さなデータで動きを確認してから本番データに使うこと。この2つを守れば、失敗してもやり直せます。

なお、社内に大量配布するファイルや基幹業務に関わる処理では、動けばよいでは済まない品質確認が必要になります。その段階では、内製と外注の判断も含めて検討してください。

状況対処
エラーメッセージが出て止まる エラー文をそのままコピーしてAIに貼り、「このエラーが出ました。直してください」と返す
エラーは出ないが結果が違う 「B支店の行がコピーされていません」のように、期待と実際の差を具体的に伝える
途中まで動いて止まる 「どの行で止まったか」を黄色くハイライトされた行で確認し、その行を伝える
何が起きているかわからない 「このマクロが何をしているか、1行ずつ日本語で説明して」と頼んで理解してから直す

属人化させない残し方——プロンプトと仕様メモ

AIでマクロを量産できるようになると、新しい問題が生まれます。作った本人しか中身を知らないマクロが社内に増えることです。従来のVBA属人化と同じ問題が、より速いペースで起こります。作った直後に、次の3点を残す習慣をセットにしてください。

これを残しておけば、作った人が異動・退職しても、後任がAIにコードとメモを渡して解読・修正できます。すでに属人化してしまったマクロを引き継ぐ方法は、別記事で詳しく扱っています。

  • 依頼に使ったプロンプト。マクロの仕様書そのものです。ファイル内のシートやメモに貼っておくだけで価値があります
  • コード内のコメント。AIに「各処理に日本語のコメントを付けて」と頼めば、コメント付きで出力してくれます
  • 仕様メモ。「何のためのマクロか」「前提となる表の形」「実行手順」「作成日(YYYY-MM-DD)と作成者」を数行で

VBAが向く場合・向かない場合

マクロは万能ではありません。手段選びの目安を挙げます。

  • VBAが向くのは、Excelの中で完結する処理や、マクロ付きファイルを配るだけで他の人も使える形にしたい場合
  • Python等が向くのは、数十万行規模の大量データ、毎晩の定期実行、Excel以外(Webやデータベース)との連携
  • そもそも自動化に向かないのは、毎回手順が変わる作業や、例外だらけで人の判断が主体の作業。この場合はマクロ化より業務の整理が先です

よくあるご質問

プログラミング経験ゼロでも本当に作れますか?
作れます。ただし「マクロの実行方法」「コードの貼り付け場所(VBE)」「マクロ有効ブック(.xlsm)での保存」という最低限の操作は覚える必要があります。これ自体もAIに「Excelでマクロを実行するまでの手順を教えて」と聞けば案内してくれます。
AIが書いたマクロが会社のデータを壊すことはありませんか?
マクロは実行すると元に戻せない変更(削除・上書き)を行うことがあります。必ずコピーしたファイルで試す、テストデータで確認してから本番に使う、という手順を守れば、実害はほぼ防げます。また、削除や上書きを含む処理は、実行前に確認メッセージを出すようAIに指定しておくと安全です。
Copilot(Excel内蔵のAI)とChatGPTなど外部AIのどちらでマクロを作るべきですか?
どちらでも作れます。Excelの中で完結する手軽さを取るか、対話しながら細かく直せる自由度を取るかの違いで、作業との相性で選べば十分です。ツールごとの得意分野は比較記事を参考にしてください。

判断に迷ったら、まず話してみませんか。

初回は1時間、無料でヒアリングします。 決まっていない段階でかまいません。今の状況を伺って、何から手をつけるべきかを一緒に整理します。

無料で相談する

関連する記事