ChatGPTにExcelマクロ(VBA)を書かせる方法【コピペだけで事務作業を自動化2026年版】

「Excelは使えるけど、VBAは難しそう」——その悩みをChatGPTが解決する

毎月、同じ作業を繰り返していませんか。

「複数シートのデータを1枚に集約する」「特定条件の行だけを別シートに抽出する」「ファイルを自動でPDF保存する」——こうした作業をExcelで毎回手動でこなしている事務職・管理部門の方は多いはずです。

「マクロやVBAを使えれば一瞬なのに」とわかっていても、プログラミングの壁が高く感じて手が出ない。それが多くの方の現状ではないでしょうか。

この記事では、VBAを1行も書けなくても、ChatGPTに日本語で指示するだけでExcelマクロを作成し、コピペで使い始める方法を完全解説します。プログラミングの知識は一切不要です。

この記事でわかること:
– ChatGPTにVBAを書かせる基本3ステップ
– 事務職がすぐ使えるユースケース5選(プロンプト付き)
– やりがちな失敗と対処法

なぜVBAを知らなくてもChatGPTで自動化できるのか

ChatGPTを使えばVBAを「書く」必要はなくなります。なぜ可能なのかを理解しておくと、使い始めるハードルが下がります。

ChatGPTはVBAを正確に書ける

ChatGPTは大量のプログラミングコードを学習しており、VBAも例外ではありません。「複数シートのデータを集約するVBAコードを書いて」と日本語で指示すれば、そのまま動くコードを出力します。

重要なのは、あなたがコードの意味を理解しなくていいという点です。ChatGPTが書いたコードをExcelに貼り付ければ動く。それだけです。

エラーもChatGPTに投げれば直る

コードを貼り付けて動かしたとき、エラーが出ることがあります。でも安心してください。エラーメッセージをそのままChatGPTに貼り付けると、原因を説明しながら修正したコードを出力してくれます。

「エラーが出たらどうしよう」という不安がある方でも、ChatGPTがデバッグ担当になってくれるため、詰まる心配がほとんどありません。

無料版でも使えるが、Plusの方が精度が上がる

ChatGPTの無料版でも基本的なVBAは生成できます。ただし、複雑な処理や条件分岐が多いコードはPlus版(最新モデル)の方が正確で、エラーも少ない傾向があります。まずは無料版で試し、精度を上げたくなったらPlusへの移行を検討するのが現実的なアプローチです。

> ChatGPT Plusは最新モデルを使用でき、複雑なVBAコードもより正確に生成できます。月額$20(約3,000円・2026年4月時点、変更の可能性あり)の投資で毎月数時間の手作業を削減できると考えると、費用対効果は高いといえます。
> → [ChatGPT Plusに登録する](PR)

ChatGPTにVBAを書かせる基本の3ステップ

手順は非常にシンプルです。3つのステップを覚えるだけで、繰り返し作業から解放されます。

Step 1: やりたいことを日本語で具体的に伝える

プロンプトのコツは「具体的に書く」ことです。

悪い例:
“`
ExcelのVBAを書いてください。
“`

良い例:
“`
ExcelのVBAを書いてください。
シート「データ」のA列に名前、B列に都道府県が入っています。
B列が「東京」のものだけをシート「抽出」のA列以降に
コピーするコードを書いてください。1行目は見出し行です。
“`

「どのシートの」「何列に何が入っているか」「どんな条件で」「どこへ」「見出し行はあるか」——この情報をセットにして伝えるほど、使えるコードが返ってきます。

Step 2: コードをVBAエディタに貼り付ける

ChatGPTが出力したコードを、Excelの「VBAエディタ」に貼り付けます。

VBAエディタの開き方:
1. Excelを開く
2. `Alt + F11` キーを押す(VBAエディタが開く)
3. 左側のツリーから「VBAProject」を右クリック→「挿入」→「標準モジュール」
4. 表示された白い画面に、ChatGPTのコードをまるごとコピペ
5. エディタを閉じる(×ボタン)

マクロを実行する方法:
1. Excelに戻り「開発」タブをクリック
2. 「マクロ」ボタンをクリック
3. 一覧から実行したいマクロ名を選んで「実行」

「開発」タブが表示されていない場合:
「ファイル」→「オプション」→「リボンのユーザー設定」→右側の一覧で「開発」にチェック→「OK」

Step 3: 動かして確認し、エラーはChatGPTへ

実行してうまくいけばOKです。エラーメッセージが出た場合は、以下のようにChatGPTへ投げましょう。

“`
先ほど書いてもらったVBAコードを実行したら、
以下のエラーが出ました。修正してください。

実行時エラー ‘9’:
インデックスが有効範囲にありません。
“`

エラーメッセージを貼り付けるだけで、修正コードがすぐ返ってきます。自分で原因を調べる必要はありません。

すぐ使える!事務職向けユースケース5選

実際の業務でよく発生するシーンを5つ厳選しました。プロンプトをそのままコピーしてChatGPTに貼り付けてください。

① 複数シートのデータを1枚に集約する

月次レポートの作成など、複数シートに分かれたデータを1枚にまとめたいときに使えます。

プロンプト例:
“`
ExcelのVBAを書いてください。
「1月」「2月」「3月」という3枚のシートに
それぞれ表があります(1行目は見出し行)。
「集約」というシートに、各シートの2行目以降のデータを
順番にコピーするコードを書いてください。
“`

生成されるコードの例:
“`vba
Sub 集約する()
Dim ws As Worksheet
Dim 集約シート As Worksheet
Dim 貼り付け行 As Long

Set 集約シート = Sheets(“集約”)
集約シート.Rows(“2:” & 集約シート.Rows.Count).ClearContents
貼り付け行 = 2

Dim シート名 As Variant
For Each シート名 In Array(“1月”, “2月”, “3月”)
Set ws = Sheets(シート名)
Dim 最終行 As Long
最終行 = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
If 最終行 >= 2 Then
ws.Range(“A2:Z” & 最終行).Copy _
集約シート.Cells(貼り付け行, 1)
貼り付け行 = 貼り付け行 + (最終行 – 1)
End If
Next シート名

MsgBox “集約が完了しました!”
End Sub
“`

活用シーン: 月次・週次の集計作業、部門別データのまとめ、支店別データの統合

② 条件に合う行だけを別シートに抽出する

「部署が”営業部”の行だけ出したい」「ステータスが”未対応”のものだけ抽出したい」という場面に使えます。

プロンプト例:
“`
ExcelのVBAを書いてください。
シート「全データ」のD列に「ステータス」が入っています。
D列の値が「未対応」の行だけを、
シート「未対応リスト」の2行目以降にコピーするコードを書いてください。
1行目は見出し行です。列はA列からF列まであります。
“`

活用シーン: 問い合わせ管理、タスク管理、顧客リストの絞り込み、未処理案件の抽出

③ ExcelファイルをPDFに自動保存する

請求書・報告書など、毎回手動でPDF出力している場合に役立ちます。

プロンプト例:
“`
ExcelのVBAを書いてください。
現在開いているExcelファイルのシート「請求書」を、
デスクトップに「請求書_YYYYMMDD.pdf」というファイル名で
PDF保存するコードを書いてください。
YYYYMMDDはマクロを実行した日の日付を自動で入れてください。
“`

活用シーン: 請求書の月末処理、報告書の定期提出、帳票の自動出力

④ セルの書式を一括で統一する

他部署からもらったデータの書式がバラバラで、毎回手作業で直している場合に使えます。

プロンプト例:
“`
ExcelのVBAを書いてください。
シート「データ」のA列からD列の、データが入っている範囲全体に
以下の書式を一括で設定するコードを書いてください。
・フォント: 游ゴシック、サイズ11
・文字の色: 黒(自動)
・セルの背景色: 白(塗りつぶしなし)
・文字の配置: 左揃え
・罫線: 外枠と内側すべてに細い実線
“`

活用シーン: 外部データの整形、テンプレートへの貼り付け後の書式統一、提出資料の見た目統一

⑤ 指定フォルダ内の複数ファイルを一括処理する

月次・週次で繰り返す処理(特定列を削除する、書式を統一する等)を、複数のExcelファイルに一括適用できます。

プロンプト例:
“`
ExcelのVBAを書いてください。
「C:\Users\(あなたのユーザー名)\Documents\月次データ」フォルダ内にある
全てのExcelファイル(.xlsx)を順番に開いて、
各ファイルのシート「データ」のF列を削除し、
上書き保存してから閉じるコードを書いてください。
“`

活用シーン: 複数支店からのデータの前処理、月次レポートの一括整形、フォルダ内の一括変換

やりがちな失敗と対処法

VBAを初めて使う際によく起こる失敗を3つ紹介します。事前に知っておくと安心です。

注意① 必ずバックアップをとってから実行する

VBAは「元に戻す(Ctrl+Z)」が効かない操作があります。「削除」「上書き保存」系の処理は元に戻せないため、特に注意が必要です。

推奨する習慣:
– VBAを試すときは「_テスト」などを付けた別名のコピーファイルで実行する
– 本番ファイルは「ファイル名_backup_20260408」のように日付付きで別名保存してから実行する
– ⑤の「フォルダ一括処理」は特にリスクが高いため、1ファイルで動作確認してから全体へ適用する

注意② マクロが有効になっているか確認する

Excelはセキュリティ設定でマクロをブロックする場合があります。VBAが動かないときはまずここを確認してください。

設定変更の手順:
「ファイル」→「オプション」→「セキュリティセンター」→「セキュリティセンターの設定」→「マクロの設定」→「すべてのマクロを有効にする」

社内PCでセキュリティポリシーがある場合は、IT部門に確認してから変更しましょう。

注意③ プロンプトの「前提」を正確に伝える

ChatGPTはあなたのExcelファイルの構造を知らずにコードを書きます。シート名・列の位置・見出し行の有無が実際のファイルと異なると、コードが動かないか意図しない動作をします。

プロンプトに必ず含める情報:
– シート名(「Sheet1」ではなく実際の名前、例:「2026年4月」)
– どの列に何が入っているか(例:「A列に日付、B列に担当者名、C列に金額」)
– 見出し行が何行目にあるか(例:「1行目は見出し行です」)
– データの範囲(例:「列はA列からF列まで」「最大1,000行程度」)

> 🎙️ AIと組み合わせると効果が上がるツール
> 議事録・報告書の作成をさらに効率化するなら、会話を自動でテキスト化するAIボイスレコーダー「PLAUD NOTE」も選択肢のひとつです。
> [→ PLAUD NOTEの詳細を見る](https://px.a8.net/svt/ejp?a8mat=4B1R5U+DKSWFM+5J4W+5YJRM)

まとめ:VBAはもう「難しいもの」じゃない

ChatGPTを使えば、Excelマクロ(VBA)はプログラミングの知識がなくても使えます。コードを理解する必要もありません。

この記事のポイント:
– ChatGPTに「やりたいこと」を日本語で具体的に伝えるだけでVBAが生成できる
– `Alt + F11` でVBAエディタを開いてコードをコピペするだけで使える
– エラーが出てもChatGPTにメッセージを投げれば修正できる
– バックアップ・マクロ有効化・前提の明示の3点に注意する

まず試してほしいこと:

「①複数シートのデータ集約」のプロンプトをそのままChatGPTに貼り付けて試してみてください。自分のシート名・列名に書き換えるだけでカスタマイズできます。1回成功体験を積むと、他のユースケースへの応用が一気に広がります。

より高度なVBAに挑戦したい方は、UdemyのExcel VBA講座をChatGPTと並行して活用するのがおすすめです。生成AIと合わせて学ぶことで、独学のスピードが大幅に上がります。

> → [UdemyのExcel VBA講座を見る](https://trk.udemy.com/c/7221214/3193860/39854)(PR)

[→ DMM 生成AI CAMP で生成AIをまとめて学ぶ(月額・学び放題)](https://h.accesstrade.net/sp/cc?rk=0100pzim00os23)

※本記事はPR(アフィリエイト広告)を含みます。

AI

jitsumuai / jitsumuai.com 運営者

プロフィールを見る →

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です