まな先生解説
こころ質問
すい要点整理
| 確認した記事 | 主に扱う内容 | 載っていなかった内容 |
|---|---|---|
| 東京経済大学 情報システム課 | 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で作るVBA | ChatGPTのファイル分析 | Officeスクリプト | ExcelのCopilotウィンドウ |
|---|---|---|---|---|
| 動く環境 | △ Windows/Macのデスクトップ版 | 〇 ChatGPTの画面内 | △ Web版が中心、法人・教育向けライセンスが必要 | △ Copilotが使えるMicrosoft 365 |
| 同じ処理のくり返し | 〇 ボタン1つで何度でも | × 毎回依頼し直す | 〇 保存したスクリプトを実行できる | △ その都度お願いする |
| 既定ブロックの影響 | × Windows版で受ける | 〇 影響なし | 〇 VBAマクロではないため対象外 | 〇 VBAマクロではないため対象外 |
| 社内データの学習扱い | △ Free/Plusは既定で学習に使われ、設定でオフにできる。Businessは既定で学習なし | △ 同左(ファイルごと渡す) | 〇 AIを使わずに書けばAIへ渡らない | △ 組織の契約条件次第 |
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ファイルは呼ばない
- 削除や上書きの前に、確認メッセージを出す
- 各処理に日本語のコメントを付ける
マクロのブロックを解除する手順
- 受け取った.xlsmを、いったんPCに保存する
- ファイルを右クリックして「プロパティ」を開く
- 「全般」タブの「ブロックの解除」にチェックを入れる
- 「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」でエラーを黙らせる:データの取りこぼしや上書きに気づけなくなります。
注意
セキュリティ設定は「広く緩める」より「狭く許可する」が基本です。迷ったら、情報システム担当者に相談してください。




