ChatGPTでExcelマクロ(VBA)を自動生成する方法|コードが書けなくても経理作業を自動化
VBAを書いたことがなくても大丈夫。ChatGPTに「〇〇を自動化したい」と日本語で伝えるだけで、請求書PDF一括出力・複数シート集計・メール自動送信マクロが完成します。
はじめに:月末の締め作業、まだ手作業でやってる?
経理・総務職の人に聞くと「月末の締め作業が毎回2〜3時間かかる」という声をよく聞く。請求書を1枚ずつPDF出力して、複数シートの数字を手でコピペして、送付メールを一通ずつ書いて……。
実はこれ、全部Excelのマクロ(VBA)で自動化できる。しかもVBAを一切書いたことがなくてもChatGPTを使えば作れる。
この記事でわかること
- ChatGPTでVBAマクロを自動生成する基本の手順
- 実際に使えるコピペOKプロンプト4選(請求書PDF出力・シート集計・メール送信・デバッグ)
- マクロの実行方法(VBAエディタの開き方)
- 月末締め作業を2時間→5分に短縮した実例
⏱ 時短効果:2時間 → 5分
前提:VBAマクロを実行するための準備
- Excelを開く
Alt + F11でVBAエディタを開く- 「挿入」→「標準モジュール」をクリック
- ChatGPTが生成したコードを貼り付け
F5で実行、または「開発タブ」→「マクロ」から実行
コードの意味が分からなくても動く。
プロンプト①:請求書PDF一括出力マクロ
月末に請求書を1枚ずつPDF保存している人はこれで解決。
ExcelのVBAマクロを作ってください。
【やりたいこと】
「請求書」というシートがあります。
B3セルに得意先名が入っています。
A列に得意先名リストがあるシート「取引先リスト」があり、A列に得意先名が入っています。
「取引先リスト」のA列を上から順に読み込み、
各得意先名を「請求書」シートのB3に入力してPDFを保存する処理を繰り返すマクロを作ってください。
【保存先】
デスクトップの「請求書フォルダ」フォルダ
ファイル名:「YYYYMM_得意先名_請求書.pdf」(YYYYMMは今月の年月)
エラー処理も含めて、実用的なコードにしてください。
プロンプト②:複数シートの集計自動化マクロ
「Sheet1〜Sheet12の売上合計を集計シートにまとめる」作業もマクロ化できる。
ExcelのVBAマクロを作ってください。
【やりたいこと】
ワークブックに「1月」〜「12月」という名前のシートがあります。
各シートのB列2行目から最終行までに売上データが入っています。
「集計」シートのA列に月名(1月、2月…)、B列に各月の売上合計を自動で書き込むマクロを作ってください。
【追加条件】
・「集計」シートが存在しない場合は自動で作成
・既存データがある場合は上書き
・処理完了後に「完了しました」のメッセージボックスを表示
プロンプト③:Outlookメール自動送信マクロ
Excelの宛先リストから一斉メール送信も自動化できる。
ExcelとOutlookを連携するVBAマクロを作ってください。
【データ構造(Sheet1)】
A列:宛先メールアドレス
B列:宛先名(〇〇様の〇〇部分)
C列:添付ファイルのフルパス(例:C:\Users\yamada\Desktop\請求書_A社.pdf)
【メール内容】
件名:「【請求書送付】〇〇月分のご請求について」(〇〇は今月の月)
本文テンプレートに宛先名を差し込む。
C列が空のときは添付なし。
送信前に確認ダイアログを表示。
送信結果をD列に「送信済み」「エラー」で記録。
プロンプト④:デバッグ用(エラーが出たとき)
マクロが動かないときはエラーメッセージをそのままChatGPTに渡す。
以下のExcel VBAコードでエラーが発生しています。原因と修正方法を教えてください。
【エラーメッセージ】
「実行時エラー '1004': アプリケーション定義またはオブジェクト定義のエラーです」
【エラーが出た行】
Worksheets("請求書").Range("B3").Value = 得意先名
【状況】
・シート名「請求書」は存在する
・変数「得意先名」には値が入っている
・Excelのバージョン:Microsoft 365
修正済みのコードも提示してください。
実例:月末締め作業を2時間→5分に短縮
Before(毎月末):
- 請求書PDF出力:30件×3分 = 90分
- 各シートの数字を集計シートにコピペ:30分
- 送付メール作成・送信:30件×2分 = 60分
- 合計:約3時間
After(マクロ導入後):
- PDF一括出力マクロ実行:3分
- 集計マクロ実行:1分
- メール一括送信マクロ実行:1分
- 合計:約5分
月に3時間の節約。年間では36時間。
生成されたPDFを結合・分割する場合は山田ツールのPDF結合ツールが便利。
注意点
- マクロ有効ブックで保存:マクロを含むファイルは「.xlsm形式」で保存する必要がある
- セキュリティ設定:初回実行時にセキュリティ警告が出たら「マクロを有効にする」を選択
- テストは必ず別ファイルで:本番データで試す前に、コピーファイルでテストを
FAQ
Q: VBAの知識ゼロでもマクロを使いこなせる? A: 使えます。ChatGPTにやりたいことを日本語で伝え、生成されたコードをVBAエディタに貼り付けるだけ。コードを読む必要はありません。
Q: エラーが出たら自分で直せない? A: エラーメッセージをそのままChatGPTに貼り付ければ解決策を出してくれます。プロンプト④を使ってください。
Q: マクロで何でも自動化できる? A: Excelで手動でできることはほぼ自動化可能。ただしWeb上のデータ取得はChatGPTが生成するコードでは動かないケースがあります。
Q: Google スプレッドシートでも同様のことができる? A: Google スプレッドシートは「Google Apps Script(GAS)」を使います。ChatGPTにGAS版で作るよう依頼すれば対応可能。
まとめ
- VBAは「書く」のではなく「ChatGPTに生成してもらう」もの
- プロンプトには「データ構造」「やりたいこと」「追加条件」を日本語で箇条書きで書く
- エラーが出たらエラーメッセージをそのままChatGPTに渡せばOK
- 月末締め作業のような繰り返し作業は特に効果が大きい