← AI実務ナビ トップへ

ExcelのVBAマクロをChatGPTで自動生成|プログラミング不要で事務作業を効率化する手順

PR本記事はアフィリエイト広告(プロモーション)を含みます。紹介する商品・サービスの選定基準や体験談は編集部の見解に基づきます。

この記事を読むと何ができるようになるか

  • ChatGPTに「やりたい作業」を言葉で伝えて、ExcelのVBAマクロのコードを作ってもらえるようになります
  • 生成されたコードをExcelに貼り付けて実行する手順(開発タブの有効化・マクロ有効ブックでの保存)がわかります
  • 無料でできる範囲と、Excel本体やGoogleスプレッドシートなど環境ごとの違いを把握できます

「同じ集計作業を毎月手作業でやっている」「関数だけでは自動化しきれない」——そんな事務作業は、VBAマクロで自動化できることがあります。とはいえVBAはプログラミング言語なので、非エンジニアには敷居が高いもの。ChatGPTを使えば、やりたい処理を言葉で説明するだけで、マクロのコードのたたき台を作れます。この記事では、プログラミングを書かずにChatGPTでVBAマクロを用意し、Excelで動かすまでの手順を紹介します。

この記事は「VBA/マクロ」の記事です(関数とは別)

先に線引きです。Excelの自動化には「関数/数式」と「VBA/マクロ」の2つのレイヤーがあります。

関数は「1つのセルの中の計算」、VBAは「作業の手順そのものの自動化」と考えるとわかりやすいです。本記事はVBA/マクロに絞ります。

無料でどこまでできる? ChatGPTとExcelの整理

VBAコードの生成は、ChatGPTの無料プランで始められます。ただし、ChatGPTがあなたのExcelファイル(.xlsx)を直接操作してマクロを実行するわけではありません。ここが最初につまずきやすい点です。

やること 無料でできること 有料/制限に当たる場面
VBAコードの生成 やりたい処理を伝えてコードを作ってもらう 一定時間あたりの利用回数に上限あり(超過で軽量モデルに切替)
コードの実行 生成コードを自分でExcelに貼って実行する(手動運用)
Excel本体 Microsoft 365など有料。無料代替はGoogleスプレッドシート+GAS

ChatGPTによる.xlsxファイルの直接操作(アップロードしてコードを実行させる機能)は、無料プランの主機能ではありません。 そのため本記事は、「ChatGPTでVBAコードを生成し、そのコードを自分でExcelに貼り付けて実行する」という手動運用を前提にします。この方法なら、無料のChatGPTと手元のExcelだけで完結します。

なお、Excel本体は有料(Microsoft 365など)です。Excelを持っていない場合は、無料のGoogleスプレッドシートとGAS(Google Apps Script)という仕組みで似た自動化ができます(VBAとは書き方が異なります)。

💡 ポイント: 「ChatGPTがExcelを動かしてくれる」ではなく「ChatGPTがコードを書いてくれて、動かすのは自分のExcel」という役割分担を最初に押さえると、つまずきにくくなります。

全体の流れ(図解)

① 自動化したい作業を言葉で整理する(何を→どうしたい)


② ChatGPTにVBAマクロのコードを作ってもらう


③ Excelの「開発」タブからVBEを開き、コードを貼り付ける


④ まずコピーした練習用データで実行し、動作を確認する


⑤ 問題なければマクロ有効ブック(.xlsm)として保存して運用

実際の手順

  1. 自動化したい作業を「どのデータを・どういう手順で・どうしたいか」の形で言葉にまとめる
  2. ChatGPT公式サイトで、下記プロンプト例のようにVBAマクロのコードを作ってもらう
  3. Excelを開き、「ファイル → オプション → リボンのユーザー設定」で「開発」タブにチェックを入れて有効化する
  4. 「開発」タブ →「Visual Basic」でVBE(エディタ)を開き、「挿入 → 標準モジュール」に生成されたコードを貼り付ける
  5. 必ず元データのコピー(練習用ファイル)で先に実行し、意図した結果になるか確認する
  6. 問題があればエラー内容や結果をChatGPTに伝えて修正してもらう
  7. 完成したら、ブックを「Excel マクロ有効ブック(.xlsm)」形式で保存する(通常の.xlsxではマクロが保存されません)

AIに相談するためのプロンプト例(3つ)

「どんなデータか(列の構成)」「何をしたいか」「実行後にどうなってほしいか」を具体的に伝えるほど、そのまま使えるコードに近づきます。

プロンプト例(やりたい処理からVBAを作ってもらう場合):

Excelで使うVBAマクロのコードを作成してください。
・データの構成: [例:A列に日付、B列に商品名、C列に金額]
・やりたい処理: [例:金額が1万円以上の行だけ別シートに転記]
・実行後の状態: [例:「抽出結果」シートに一覧を出す]
・条件: 非エンジニアでもわかるよう、各行にコメントを付ける/
 元データは書き換えない
まず小さなサンプルで動作確認する前提の説明も添えてください。

プロンプト例(エラーが出たので直してもらう場合):

次のVBAコードを実行したら、下記のエラーが出ました。
原因と修正版のコードを教えてください。
・エラーメッセージ: [そのまま貼り付け]
・状況: [どの操作で出たか]
・コード: [今のコードを貼り付け]

プロンプト例(コードの意味を説明してもらう場合):

次のVBAコードが何をしているか、非エンジニアにもわかるよう
1行ずつやさしく説明してください。危険な操作(データを消す・
上書きするなど)があれば注意点として教えてください。

[コードを貼り付け]

AIに実際に手伝ってもらったやり取り

自分: 毎月、売上データから「金額が空欄の行」を見つけて印を付ける作業をしています。VBAでできますか。

AI: できます。指定した列(例:C列の金額)を上から確認し、空欄のセルがある行に色を付けるマクロを作れます。ただし、実行するとシートの見た目が変わるため、まず元データをコピーした練習用のファイルで試すことをおすすめします。また「空欄」の定義(スペースが入っているだけの場合も含めるか)によって挙動が変わるので、そこを決めておくと確実です。コードには各行にコメントを付けますので、動きを確認しながらお使いください。

このように、ChatGPTはコードだけでなく「先に練習用ファイルで試す」「空欄の定義を決める」といった注意点も示してくれます。生成されたコードは、まず小さなデータで動作を確かめてから本番に使いましょう。

Before/After比較

項目 従来のやり方 ChatGPT活用後
マクロ作成 VBAを学ぶ必要があり手が出ない やりたい処理を言葉で伝えて生成
エラー対応 原因がわからず詰まる エラーを貼って修正案をもらえる
動作確認 人が確認 人が確認(変わらず・省略不可)

※上記は一般的に想定される変化の整理であり、当社が数値として計測したものではありません。

使用例: 総務の一人担当・山本さんのケース

複数部署の勤怠データを毎月手作業で整形している総務の山本さんの例です。VBAは触ったことがありませんでした。

  1. やりたい処理(複数シートのデータを1枚にまとめる)を言葉でChatGPTに伝え、コメント付きのコードをもらいました
  2. 開発タブを有効化し、標準モジュールにコードを貼り付けました
  3. いきなり本番ではなく、コピーした練習用ファイルで実行し、結果を確認しました
  4. 想定と違う動きはエラー内容をChatGPTに伝えて直し、完成後に.xlsm形式で保存しました

山本さんいわく、「コードは読めなくても、やりたいことを説明すれば形になった」とのことでした(これは山本さんの体感であり、当社が効果を計測した数値ではありません)。

気をつけたいこと

  • 生成されたVBAコードは、まず元データのコピー(練習用ファイル)で実行してください。マクロはデータの上書き・削除を伴うことがあり、元に戻せない操作もあります
  • マクロを含むブックは「.xlsm」形式で保存しないとマクロが失われます。通常の.xlsxで保存しないよう注意してください
  • 出所の不明なマクロ付きファイルは、悪意あるコードが含まれる場合があります。自分がChatGPTで作ったコード以外を安易に実行しないでください
  • ChatGPTのコードにも誤りや、意図しない動作が含まれることがあります。実行結果は必ず人が確認してください
  • ChatGPTの無料プランは利用回数に上限があります。長いコードの試行錯誤を大量に繰り返す用途では頭打ちになることがあります

⚠️ 注意: 本記事は一般的な情報提供です。VBAマクロはデータを変更する操作を含むため、重要なファイルは必ずバックアップを取り、練習用データで動作を確認してから本番に使ってください。業務システムに関わる自動化は、社内のルールや情報システム部門の方針も確認しましょう。

よくある質問

Q. ChatGPTにExcelファイルを渡せば、自動でマクロを実行してくれますか? 無料プランの主機能ではありません。本記事は「ChatGPTでコードを生成し、自分でExcelに貼って実行する」手動運用を前提にしています。

Q. プログラミングの知識がなくても使えますか? やりたい処理を言葉で説明できれば、コードのたたき台は作れます。ただし、生成されたコードを練習用データで確認し、結果が正しいかを判断するのは人の役割です。

Q. Excelを持っていなくてもできますか? Excel本体は有料です。無料で近い自動化をしたい場合は、Googleスプレッドシートとその自動化の仕組み(GAS)を使う方法があります。書き方はVBAと異なるため、ChatGPTには「GASで」と伝えてください。

まとめ

VBAマクロは、ChatGPTに「やりたい作業」を言葉で伝えることで、プログラミングを書かずにコードのたたき台を用意できます。ただしChatGPTがExcelを直接動かすわけではないので、生成コードを自分でExcelに貼り、練習用データで動作を確認してから運用する、という手順が前提です。まずは小さな作業を1つ自動化してみて、うまくいったら少しずつ対象を広げていくのがおすすめです。

関連する実務ガイド

編集部の実体験メモ

当社ではAIエージェントに定型的なデータ整形やファイル処理を任せる場面が多く、その中で『やりたい処理を言葉で説明するとコードのたたき台が出てくる』ことのありがたさを実感しています。一方で、生成されたコードをそのまま実行せず、まず小さなデータで動作を確かめてから本番に使うという慎重さが欠かせないことも痛感しています。本記事はその経験をもとに、非エンジニアがVBAマクロをChatGPTで作る手順を整理しました。ツールの無料枠・仕様は変更されることがあるため、公式サイトで最新情報をご確認ください。