AI活用術

【保存版】ChatGPTでVBAを自動生成!初心者でも簡単にExcel業務を自動化する方法

記事内に商品プロモーションを含む場合があります

Excelを使っていると、「もっと自動化できたらいいのに…」と思う瞬間、ありますよね。

筆者も請求書集計や月次レポート作成を繰り返す中で、VBAは難しそうエラー対応が不安という理由で後回しにしていました。

しかし今はChatGPTに日本語で指示するだけでVBAを生成・修正でき、学習ハードルが一気に下がりました。

本記事は、初心者でも“今日から”業務自動化を始められるように、手順・プロンプト・失敗しないコツまでまとめた保存版です。

1. ChatGPTでVBAを自動生成すると何ができる?

ChatGPTは、あなたの意図(自然文)を読み取り、最適なVBAコードを提案します。従来のように構文を一から調べる必要はありません。

  • 定型作業の自動化:集計・転記・書式設定・ファイル操作など
  • Excel+Outlook連携:メール一括送信・添付ファイル自動化
  • レポート生成:テンプレへ差し込み・グラフ作成・PDF出力
  • データ整形:不要列削除・重複排除・条件付き書式の自動適用

従来との違い: コードを暗記するより、要件を言語化→ChatGPTが初稿生成→実データに合わせて微修正、という流れに変わります。

2. ChatGPTを使えば「日本語の指示だけ」でVBAコードが完成!

🔧 実例:条件でセルを色分け

プロンプト例:

「A1:A100 の数値を、80以上=薄緑、50以上=黄色、その他=赤に塗り分けるVBAを書いて。実行用のSubだけ。コメントも付けて。」

Sub 色分け()
    Dim cell As Range
    ' A1:A100の各セルをチェック
    For Each cell In Range("A1:A100")
        If IsNumeric(cell.Value) Then
            If cell.Value >= 80 Then
                cell.Interior.Color = RGB(144, 238, 144) '薄緑
            ElseIf cell.Value >= 50 Then
                cell.Interior.Color = RGB(255, 255, 0)   '黄色
            Else
                cell.Interior.Color = RGB(255, 99, 71)   '赤
            End If
        End If
    Next cell
End Sub

数十秒で“動く初稿”が手に入るので、完成までの時間が劇的に短縮します。

3. ChatGPT×VBAで得られる4つのメリット

🕒 時間短縮 検索と試行錯誤の往復を削減。初稿生成→微修正で完成。
📚 学習効率 提案コードにコメントを付けてもらい、読みながら学ぶ流れを構築。
🔁 修正容易 「範囲をB列に」「対象を複数シートに」など自然文で差分指示。
🛠 エラー耐性 エラー文を貼って原因&修正案を提示させれば、一人で詰まらない

4. 実務で使えるChatGPTプロンプト例【コピペOK】

① フォルダ内のExcelを一括集計

「フォルダを指定して、全てのxlsxの“売上”シートのA2:D最終行を1つの集計シートに縦結合するVBAを書いて。見出しは最初のファイルのみ。ファイル名列も追加して。」

② グラフの自動作成

「集計シートのA列=月、B列=売上のデータから棒グラフを作り、Sheet1に幅800×高さ400で配置するVBAを作って。既存グラフがあれば更新して。」

③ Outlookで一括送信

「Sheet1のA列=メール、B列=氏名、C列=PDFパス。件名『ご請求書の送付』、本文は氏名ごとに差し込み、PDFを添付してOutlookで下書き作成。実送信は手動にして。」

④ テンプレに差し込み

「Templateシートの所定セルに、Dataシートの同名項目を差し込んで1案件1シートのレポートを量産するVBAを書いて。存在しない項目はスキップしてログに記録。」

「前提」「入力場所」「出力形式」「例外処理」「安全策(上書き防止・確認ダイアログ)」まで明記すると、精度が上がります。

5. エラーが出ても怖くない!ChatGPTの修正サポート活用法

代表的なエラー例と聞き方

  • 実行時エラー’9’(インデックス範囲外): 「このコードでエラー9。シート名とRangeの指定を精査し、存在チェックを追加して。」
  • 型が一致しません: 「変数の型と関数の戻り値の不一致を直し、Option Explicit前提で宣言を整理して。」
  • オブジェクト変数が設定されていません: 「Nothingチェックを入れて、Set忘れがないように初期化処理を加えて。」

安全に試すための“ワンフレーズ”

「元データは触らず、複製ブック上で動作確認できるように書き換えて。保存先は時刻付きファイル名にして上書きを避けて。」

6. VBA初心者でも安心!ChatGPTで効率的に学ぶコツ

  • コメント必須:「各行に日本語コメントを付けて」と依頼して理解を促進。
  • 分割生成: 1機能=1 Sub/Functionで依頼し、後で統合する。
  • 対話で詰める: 実データの列名・シート名を教えて微修正を依頼。
  • 再利用テンプレ化: よく使う処理(最終行取得、エラーハンドラ、タイムスタンプ命名)を共通モジュールに。
' 共通: 最終行取得(空セルに強い)
Function LastRow(ws As Worksheet, col As Long) As Long
    With ws
        LastRow = .Cells(.Rows.Count, col).End(xlUp).Row
    End With
End Function

7. ChatGPT×VBAでできる自動化のアイデア集

  • 📁 フォルダ監視+自動取り込み: 新規ファイル出現で処理を走らせる(Workbook_Open+OnTimeで擬似監視)
  • 🧹 データクレンジング: 全角半角変換・トリム・重複排除・型整形を一括適用
  • 📈 ダッシュボード更新: ピボット・スライサー・グラフを一括リフレッシュしてPDF出力
  • 📬 半自動メール配信: まずは全件「下書き作成」でヒヤリ・ハットを回避

8. まとめ|ChatGPTは「VBAを使える人」から「自動化できる人」へ導くツール

ChatGPTがあれば、VBAのハードルは驚くほど低くなります。
要件を日本語で伝える → 初稿コード取得 → 実データで微修正 → エラーはAIに相談、という流れで、最短で成果に到達できます。

まずは小さな自動化から。今日の作業のうち5分でも短縮できる処理を、ChatGPTに相談してみてください。「意外とできる!」が積み重なり、業務全体が変わります。

AIブロガー
筆者:yuki
Python未経験からAIと対話しながらコード作成。副業×自動化×プログラミングの可能性を模索中。 ▷詳細プロフィールはこちら