新しいお支払い方法が使えるようになりました。コンビニ払いにも対応詳しく見る
メインコンテンツへスキップ
レシピ中級者向けChatGPT

ChatGPTでExcelマクロ(VBA)を自動生成する方法|コードが書けなくても経理作業を自動化

VBAを書いたことがなくても大丈夫。ChatGPTに「〇〇を自動化したい」と日本語で伝えるだけで、請求書PDF一括出力・複数シート集計・メール自動送信マクロが完成します。

📅 2026-04-21⏱ 8分で読める💡 時短効果: 2時間 → 5分

📋 このレシピで使うもの

ツール:ChatGPT
料金:無料 / Plus: 月額$20(約3,100円)
難易度:中級者向け
ChatGPTの公式サイトを開く →

はじめに:月末の締め作業、まだ手作業でやってる?

経理・総務職の人に聞くと「月末の締め作業が毎回2〜3時間かかる」という声をよく聞く。請求書を1枚ずつPDF出力して、複数シートの数字を手でコピペして、送付メールを一通ずつ書いて……。

実はこれ、全部Excelのマクロ(VBA)で自動化できる。しかもVBAを一切書いたことがなくてもChatGPTを使えば作れる。

この記事でわかること

  • ChatGPTでVBAマクロを自動生成する基本の手順
  • 実際に使えるコピペOKプロンプト4選(請求書PDF出力・シート集計・メール送信・デバッグ)
  • マクロの実行方法(VBAエディタの開き方)
  • 月末締め作業を2時間→5分に短縮した実例

⏱ 時短効果:2時間 → 5分


前提:VBAマクロを実行するための準備

  1. Excelを開く
  2. Alt + F11でVBAエディタを開く
  3. 「挿入」→「標準モジュール」をクリック
  4. ChatGPTが生成したコードを貼り付け
  5. 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
  • 月末締め作業のような繰り返し作業は特に効果が大きい

→ Excel関数の自動生成も読む

ChatGPTでExcelマクロ(VBA)を自動生成する方法|コードが書けなくても経理作業を自動化 | AI活用レシピ | 山田ツール