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に相談してみてください。「意外とできる!」が積み重なり、業務全体が変わります。

