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

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

月末の夜、受発注の締め作業でオフィスに残っているのは、あなた一人です。フォルダには50ファイルほどのExcelが並んでいます。一つずつ開いては同じ範囲をコピーし、別のシートへ貼り付けていきます。単純な繰り返しなのに、目と指先だけがどんどん疲れていきます。「これ、自動でできないのかな」と思いながら、今日も手を動かしています。

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

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

総務省の令和7年版情報通信白書によれば、業務で生成AIを利用していると答えた企業は5割を超えています。一方で「効果的な活用方法がわからない」という懸念も根強く、VBA自動化はその具体的な突破口の一つといえるでしょう。

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

これはVBAを「学ぶ」ための記事ではありません。「VBAを書かずに使う」ための記事です。コードを書くのはChatGPTで、あなたは日本語で指示して、動くかどうかをテストで確かめるだけです。

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

なお、VBAまで踏み込まなくても、関数とChatGPTの組み合わせで片づく作業も少なくありません。「まずは関数で十分かも」という方は、関数を覚えないExcel自動化の入門から始めるのがおすすめです。関数やデータ分析をもっと任せたい場合は、ChatGPTで関数・分析を自動化する方法も参考になります。


なぜ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の公式サイトで確認してから判断しましょう。


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」

VBAコードを動かす4ステップ:Alt+F11でVBAエディタを開く→標準モジュールを挿入→コードを貼り付け→開発タブからマクロを実行

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

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

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

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

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

エラー対処の流れ:実行時エラーのメッセージをそのままChatGPTに投げると修正コードが返ってくる


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

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

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

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

プロンプト例:

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

生成されるコードの例:

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

実行前と実行後: 実行前は「1月」「2月」「3月」の3シートにバラバラに並んでいた売上明細が、実行後は「集約」シート1枚に上から順に積み上がります。シートを行き来してコピペを繰り返す手作業が、ボタン一つの操作に置き換わります。

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


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

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

プロンプト例:

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つ紹介します。事前に知っておくと安心です。

前提として、ChatGPTが生成するコードの動作は必ずしも保証されていません。本番データではなくテスト環境やコピーファイルで動作を確認し、自己責任で利用することを心がけてください。

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

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

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

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

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

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

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

IPA(情報処理推進機構)も、悪意あるマクロを仕込んだExcelファイルでウイルス感染が広がった事例を注意喚起しています。身に覚えのないマクロ付きファイルを受け取った際は、安易に「マクロを有効にする」を選ばないことも大切です。

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

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

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

個人情報保護委員会は、生成AIサービスへの入力情報の取り扱いに注意喚起をしています。プロンプトには実在の顧客名や個人情報を書かず、列構成やダミーの値で伝えましょう。


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

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

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

まず試してほしいこと:

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

厚生労働省の能力開発基本調査でも、仕事のために自己啓発に取り組む社会人の存在が継続して確認されています。ChatGPTでVBAの型を覚えたら、体系的な学習でさらに応用力を伸ばすのも一つの選択です。

また、会社でMicrosoft 365を使っているなら、Excelに組み込まれたAIアシスタント「Copilot」を併用する選択肢もあります。使い方はExcelでCopilotを使いこなす完全入門で解説しています。

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

UdemyのExcel VBA講座を見る(PR)

→ DMM 生成AI CAMP で生成AIをまとめて学ぶ(月額・学び放題)

Excelの自動化が一段落したら、会議や打ち合わせの記録も自動化したくなるかもしれません。

🎙️ AIと組み合わせると効果が上がるツール
議事録・報告書の作成をさらに効率化するなら、会話を自動でテキスト化するAIボイスレコーダー「PLAUD NOTE」も選択肢のひとつです。
→ PLAUD NOTEの詳細を見る


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

AI

jitsumuai / jitsumuai.com 運営者

プロフィールを見る →

コメントを残す

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