資料・データ作成

ChatGPTでエクセルマクロ(VBA)の作り方|動かない原因と配布前10項目

ChatGPTでエクセルのマクロ(VBA)を作る手順を、作る前の環境診断、6項目のプロンプト、動かない原因の見分け方、マクロのブロック解除、VBScript廃止への備えの順に解説します。実行前・配布前に確かめる10項目のチェックリストも載せています。

ChatGPTでエクセルマクロ(VBA)の作り方|動かない原因と配布前10項目
まな先生解説
こころ質問
すい要点整理
確認した記事主に扱う内容載っていなかった内容
東京経済大学 情報システム課7ステップの手順、.xlsm保存、個人情報を入れない注意Web版Excel、既定ブロック、VBScript廃止、学習設定
できるネット(2023年7月公開)名簿の行をグレーにする例、対話での修正Web版Excel、既定ブロック、VBScript廃止、学習設定
Taskhubプロンプトのコツと10例、元に戻せない・機密情報の注意Web版との分岐、ブロック解除手順、VBScript廃止
yamada-tools(2026年4月公開)経理向けプロンプト4例、.xlsm保存Web版Excel、既定ブロック、VBScript廃止、実行前バックアップ
横スクロールできます
補足

本文は、Microsoft LearnやOpenAIヘルプセンターなどの公開情報を編集部が整理したもので、実機検証や専門家の監修ではありません。各出典の確認日は本文中に記載しています。

ChatGPTでエクセルのマクロを作るには、まず何をすべき?

「この自動化、どれで作る?」診断チャート

  • Q1. 使っているExcelはWindowsかMacのデスクトップ版?
  • Web版やTeams上で開いている → Officeスクリプトへ(法人・教育機関向けのライセンスがあるか確認)
  • デスクトップ版 → Q2へ
  • Q2. 毎回同じ手順をくり返す処理?
  • 一度きりの集計・分析 → ChatGPTにxlsxを渡して処理してもらうか、ExcelのCopilotウィンドウを使う
  • 毎週・毎月くり返す → Q3へ
  • Q3. ほかの人にファイルを配る?
  • 配らない → VBAで作る
  • 配る → VBAで作り、OneDriveの「デスクトップアプリで開く」などのブロック対策を前提にする
  • Q4. 正規表現(文字のパターン検索)や外部スクリプトを使う?
  • 使う → Windows版Microsoft 365がVersion 2508以降か確認し、プロンプトに「VBA標準のRegExpを使い、.vbsは呼ばない」と書く

4つの方法を比べてみる

項目ChatGPTで作るVBAChatGPTのファイル分析OfficeスクリプトExcelのCopilotウィンドウ
動く環境△ Windows/Macのデスクトップ版〇 ChatGPTの画面内△ Web版が中心、法人・教育向けライセンスが必要△ Copilotが使えるMicrosoft 365
同じ処理のくり返し〇 ボタン1つで何度でも× 毎回依頼し直す〇 保存したスクリプトを実行できる△ その都度お願いする
既定ブロックの影響× Windows版で受ける〇 影響なし〇 VBAマクロではないため対象外〇 VBAマクロではないため対象外
社内データの学習扱い△ Free/Plusは既定で学習に使われ、設定でオフにできる。Businessは既定で学習なし△ 同左(ファイルごと渡す)〇 AIを使わずに書けばAIへ渡らない△ 組織の契約条件次第
横スクロールできます

ChatGPT製マクロが動かない主な原因

ChatGPT製マクロが動かない主な原因

原因1:VBAが動かない環境で開いている

原因2:ファイルがブロックされている

原因3:プロンプトに書いた情報が足りない

原因4:VBScriptに頼ったコードになっている

原因別の見分け方は?表示とエラーで切り分ける

見えている症状考えられる原因確認する場所
「セキュリティリスク」バナーで有効化ボタンがないMark of the Webによるブロックファイルの「プロパティ」→「全般」タブ
「コンテンツの有効化」ボタン付きの警告が出る通常のマクロ無効化出所が確かなら有効化してよい
実行時エラー9(インデックスが有効範囲にありません)存在しないコレクションの要素を指定した(実在しないシート名など)コード内のシート名と実際のタブ名
実行時エラー429(ActiveXコンポーネントはオブジェクトを作成できません)CreateObjectの失敗(Mac、VBScriptが無効な環境など)(目安)CreateObjectの行
コンパイルエラー「ユーザー定義型は定義されていません」参照設定が足りない(目安)VBEの「ツール」→「参照設定」
横スクロールできます

ChatGPTでマクロを作る具体的な解決方法

VBAのプロンプトは6項目を埋める

  • シート名はコード冒頭の定数にまとめる
  • 最終行は固定せず、データから取得する
  • 正規表現はVBA標準のRegExpクラスを使い、.vbsファイルは呼ばない
  • 削除や上書きの前に、確認メッセージを出す
  • 各処理に日本語のコメントを付ける

マクロのブロックを解除する手順

  1. 受け取った.xlsmを、いったんPCに保存する
  2. ファイルを右クリックして「プロパティ」を開く
  3. 「全般」タブの「ブロックの解除」にチェックを入れる
  4. 「OK」を押して、ファイルを開き直す
注意

送り主に確認できないファイルは、解除しないでください。

VBScript依存のコードを書き換える

補足

同じ記事によると、New RegExpで書いたコードはOffice 2508以降でしか動きません。CreateObject("VBScript.RegExp")は、2508以降なら動き、それより古いOfficeではVBScriptが有効な間だけ動きます。配布先のバージョンも確かめてください。

使う場所・配る相手ごとの対処

Web版やTeamsで共有しているブック

社内や取引先に配布する

ChatGPT for ExcelアドインやCopilotを使う場合

予防・再発防止の10項目チェックリスト

実行前の5項目

No確認項目ChatGPTに貼る確認文
①テスト用コピーで動かす「実行するとどのシートのどのセルが変わるか一覧にして」
②Delete・ClearContents・上書き保存・Killの行を確認「削除・上書きをしている行をすべて挙げて」
③シート名や最終行が固定で書かれていないか「固定の範囲を、定数と最終行の自動取得に直して」
④VBScriptの参照設定や.vbs呼び出しがないか「VBScript依存の箇所をVBA標準のRegExpで書き直して」
⑤実データをプロンプトに貼っていないか「同じ列構成のダミーデータを10行作って」
横スクロールできます

配布時の5項目

No確認項目ChatGPTに貼る確認文
⑥.xlsmで保存した「配布用の保存手順を3行で教えて」
⑦OneDrive/SharePointで共有し「デスクトップアプリで開く」を案内した「受け取る人向けの開き方を5行で書いて」
⑧ブロック解除は出所が確かな場合だけにする「解除してはいけないケースを書いて」
⑨信頼できる場所は個人用フォルダに絞る「信頼できる場所を個人用フォルダだけに設定する手順を教えて」
⑩コード冒頭に作成日・目的・作成プロンプトを残した「冒頭に作成日・目的・プロンプト要約をコメントで追加して」
横スクロールできます

やってはいけないNG対応

  • 「すべてのマクロを有効にする」に変更する:Microsoft Learn(前掲、2026年10月30日に再確認)で「推奨しません」とされている設定です。
  • 出所のわからないファイルのブロックを解除する:送り主に確認できないなら開かないでください。
  • ネットワーク上の場所を信頼できる場所にする:同じページで推奨されていません。ほかの人が置いたファイルまで、確認なしで動きます。
  • 「On Error Resume Next」でエラーを黙らせる:データの取りこぼしや上書きに気づけなくなります。
注意

セキュリティ設定は「広く緩める」より「狭く許可する」が基本です。迷ったら、情報システム担当者に相談してください。

よくある質問

ChatGPTの無料版でもVBAは作れますか?

マクロのブロックを解除できないときは?

関連記事

ChatGPTエラー修正