Home / Microsoft / Excel / 【2026年最新版】Excelのマクロが自動実行されない・エラーになる原因と対処法【完全ガイド】

【2026年最新版】Excelのマクロが自動実行されない・エラーになる原因と対処法【完全ガイド】

※本ページにはプロモーション(広告)が含まれています

【2026年最新版】Excelのマクロが自動実行されない・起動時に動かない原因と対処法【完全ガイド】

Excelを開いたときに自動でマクロが実行されるはずなのに、まったく動かない――そんな経験はありませんか?

「以前は動いていたのに、急に自動実行されなくなった」「他のPCに持っていったら動かなくなった」「Auto_OpenやWorkbook_Openを書いたのに反応しない」など、Excelのマクロ自動実行トラブルは非常に多く報告されています。

原因はひとつではなく、マクロのセキュリティ設定・ファイルの保存形式・VBAコードの書き方・信頼済みドキュメントの設定など複数の要因が絡み合っていることがほとんどです。

この記事では、Excelのマクロが自動実行されない・起動時に動かない問題について、原因の特定から具体的な対処法まで、ステップバイステップで解説します。

この記事でわかること

  • Excelマクロが自動実行されない主な原因(6つ)
  • マクロセキュリティ設定の確認・変更手順
  • 信頼済みドキュメント・信頼できる場所の設定方法
  • Auto_Open・Workbook_Openの正しい書き方と違い
  • .xlsxと.xlsmの保存形式による問題と対処法
  • よくある質問と解決策

Excelのマクロが自動実行されない主な原因

Excelマクロ自動実行されない対処法 画像1

マクロの自動実行が動かない場合、以下の6つのいずれかが原因であることがほとんどです。まずは原因を特定することが解決への近道です。

原因 概要 頻度
マクロのセキュリティ設定 Excelがマクロをブロックしている 非常に多い
ファイルの保存形式(.xlsx) .xlsxはマクロを保存できない形式 非常に多い
VBAコードの記述ミス プロシージャ名・モジュール配置が間違っている 多い
インターネットからダウンロードしたファイル 保護ビューでブロックされている 多い
信頼できる場所の未設定 フォルダが信頼済みでないためブロック 中程度
グループポリシーによる制限 企業PC・組織の設定でマクロが強制無効化 中程度

それぞれの原因と対処法を、以下でくわしく解説していきます。

対処法:ステップバイステップで解決する

対処法1:マクロのセキュリティ設定を確認・変更する

最も多い原因が、Excelのセキュリティ設定によってマクロがブロックされているケースです。Excelはデフォルトで「警告を表示してすべてのマクロを無効にする」設定になっているため、ファイルを開くときに黄色いバーが表示され、手動で有効化しないとマクロが実行されません。

自動実行させるためには、「すべてのマクロを有効にする」または「信頼できる場所」に配置する必要があります。

セキュリティ設定の変更手順

  1. Excelを開き、画面上部の「ファイル」タブをクリックします。
  2. 左側メニューの「オプション」をクリックします。
  3. 「Excelのオプション」ダイアログが開いたら、左側の「トラスト センター」をクリックします。
  4. 右側に表示される「トラスト センターの設定」ボタンをクリックします。
  5. 「マクロの設定」をクリックします。
  6. 以下の4つのオプションが表示されます。
設定 説明 推奨
警告を表示せずにすべてのマクロを無効にする マクロが完全に使えない。通知もなし 非推奨
警告を表示してすべてのマクロを無効にする(初期設定) 開くたびに手動許可が必要。自動実行は不可 初期値
デジタル署名されたマクロを除き、すべてのマクロを無効にする 署名付きのみ自動実行可能 企業向け
すべてのマクロを有効にする マクロを制限なく実行できる 個人用途向け

自動実行を常に有効にしたい場合は「すべてのマクロを有効にする」を選択し、「OK」で保存してください。ただし、信頼できないファイルを開く機会が多い場合はセキュリティリスクが高まるため注意が必要です。

注意: 「すべてのマクロを有効にする」設定は、セキュリティリスクが高まります。信頼できるファイルのみを扱う場合に限り使用し、不明なファイルを開く際は注意してください。個人利用や社内ファイル専用環境では有効な選択肢です。

対処法2:保護ビュー(プロテクトモード)を解除する

インターネットからダウンロードしたファイルや、メール添付で受け取ったファイルは、Excelが自動的に「保護ビュー」で開きます。保護ビューではマクロが完全に無効化されており、Auto_OpenもWorkbook_Openも実行されません。

保護ビューを解除する手順

  1. ファイルを開いたときに黄色いバー(「保護されたビュー このファイルはインターネットから入手したファイルです」)が表示されているか確認します。
  2. 黄色いバーの右端にある「編集を有効にする」ボタンをクリックします。
  3. 続いて、もう一つのバー「セキュリティの警告 マクロが無効にされました」の「コンテンツの有効化」をクリックします。
  4. これで「信頼済みドキュメント」として登録され、次回以降は自動実行が有効になります。

保護ビューを事前に無効化する方法(上級者向け)

毎回クリックするのが面倒な場合は、保護ビュー自体を無効にすることもできます。

  1. 「ファイル」→「オプション」→「トラスト センター」→「トラスト センターの設定」
  2. 保護されたビュー」をクリックします。
  3. 「インターネットから取得したファイルに対して保護されたビューを有効にする」のチェックを外します。
  4. 「OK」で保存します。
注意: 保護ビューを完全に無効にするとセキュリティリスクが高まります。社内ファイルのみを扱う環境に限定して使用することをお勧めします。

対処法3:信頼できる場所(トラストセンター)にフォルダを追加する

特定のフォルダに保存されたファイルのマクロを常に自動実行させたい場合は、そのフォルダを「信頼できる場所」に追加する方法が最も安全で確実です。

信頼できる場所に指定されたフォルダのファイルは、セキュリティ警告なしにマクロが自動実行されます。

信頼できる場所を追加する手順

  1. 「ファイル」→「オプション」→「トラスト センター」→「トラスト センターの設定」をクリックします。
  2. 左側の「信頼できる場所」をクリックします。
  3. 新しい場所の追加」ボタンをクリックします。
  4. 「参照」ボタンからマクロファイルを保存しているフォルダを選択します。
  5. サブフォルダも含めたい場合は「この場所のサブフォルダーも信頼する」にチェックを入れます。
  6. 「OK」を2回クリックして保存します。

これでそのフォルダに保存された .xlsm ファイルは、次回から自動でマクロが実行されるようになります。

対処法4:グループポリシーによる制限を確認する(企業PC向け)

会社や学校のPCでは、IT管理者がグループポリシーでマクロを強制的に無効化していることがあります。この場合、Excelのオプションからマクロ設定を変更しようとしてもグレーアウトして変更できない状態になっています。

確認方法

  • 「ファイル」→「オプション」→「トラスト センター」→「トラスト センターの設定」→「マクロの設定」を開いたとき、ラジオボタンがすべてグレーアウト(選択不可)になっていたらグループポリシーによる制限の可能性があります。
  • この場合は、IT管理者に相談してマクロの使用許可を申請する必要があります。

対処法5:ファイルのプロパティからブロックを解除する

Windowsでは、インターネットからダウンロードしたファイルに「ゾーン識別子」が付与され、Excelがそれを検知してマクロをブロックします。Excelの設定を変えなくても、ファイルのプロパティから直接ブロックを解除できます。

ファイルのブロック解除手順

  1. Excelファイル(.xlsm)をエクスプローラーで右クリックします。
  2. プロパティ」をクリックします。
  3. 「全般」タブの一番下に「セキュリティ: このファイルは他のコンピューターから取得したものです。このコンピューターを保護するため、このファイルへのアクセスはブロックされる可能性があります。」という表示があれば、右側の「許可する」チェックボックスにチェックを入れます。
  4. 「OK」または「適用」をクリックします。
  5. 次回ファイルを開くとマクロが正常に動作します。

この方法はファイル単位でのブロック解除なので、セキュリティ設定全体を変更せずに済むのが利点です。

Auto_OpenとWorkbook_Openの正しい書き方

セキュリティ設定が正しくても、VBAコードの書き方が間違っていると自動実行されません。Excelには「ファイルを開いたときに自動実行する」ための仕組みが2種類あります。それぞれの正しい書き方と違いを解説します。

方法1:Auto_Open(標準モジュールに記述)

Auto_Open は、標準モジュールに記述するプロシージャです。ファイルを開いたときに自動的に呼び出されます。

正しい書き方

' ← 「標準モジュール」(Module1など)に記述する
Sub Auto_Open()
    ' ここにファイルを開いたときに実行したい処理を書く
    MsgBox "ファイルが開かれました!"
End Sub

配置場所の確認

  1. VBエディタ(Alt + F11)を開きます。
  2. 左側の「プロジェクト」ウィンドウで「標準モジュール」フォルダを展開します。
  3. 「Module1」などのモジュールを選択し、そこに記述します。
  4. 「ThisWorkbook」や「Sheet1」などに書いた場合は動作しません。
よくあるミス: Auto_Open を「ThisWorkbook」モジュールに書いてしまうケース。ThisWorkbookに書く場合は、後述の Workbook_Open を使う必要があります。

方法2:Workbook_Open(ThisWorkbookに記述)

Workbook_Open は、「ThisWorkbook」モジュールに記述するイベントプロシージャです。現在では Auto_Open よりもこちらが推奨されています。

正しい書き方

' ← 「ThisWorkbook」モジュールに記述する(必須)
Private Sub Workbook_Open()
    ' ここにファイルを開いたときに実行したい処理を書く
    MsgBox "ブックが開かれました!"
End Sub

配置場所の確認

  1. VBエディタ(Alt + F11)を開きます。
  2. 左側の「プロジェクト」ウィンドウで対象ブックを展開します。
  3. Microsoft Excel Objects」フォルダ内の「ThisWorkbook」をダブルクリックします。
  4. コードエリアの上部にある2つのドロップダウンで、左側を「Workbook」、右側を「Open」に設定します。
  5. 自動的に Private Sub Workbook_Open() が挿入されるので、そこに処理を書きます。

Auto_Open vs Workbook_Open の違い

項目 Auto_Open Workbook_Open
記述場所 標準モジュール ThisWorkbook
推奨度 旧式(後方互換のために存在) 現在の推奨方式
Open メソッドで開いた場合 実行されない場合あり 常に実行される
VBAからの無効化 Application.EnableEvents と無関係 EnableEvents=False で無効化可能
複数記述 複数のモジュールに書けない 同様

Workbook_Open が動かない場合のチェックリスト

  • 「ThisWorkbook」に記述されているか(標準モジュールへの誤記述)
  • プロシージャ名が Workbook_Open と正確に一致しているか(大文字小文字は不問だが綴りが正確か)
  • Application.EnableEventsFalse になっていないか(他のマクロが誤ってFalseにしたまま)
  • コンパイルエラーが発生していないか(VBエディタでデバッグ→コンパイルを実行して確認)

EnableEventsの確認・修正コード

' イミディエイトウィンドウ(Ctrl+G)に貼り付けて実行
? Application.EnableEvents   ' TrueならOK、FalseならNG

' Falseになっていた場合は以下で修正
Application.EnableEvents = True
Excelマクロ自動実行されない対処法 画像2

.xlsxと.xlsmの違い・保存形式の問題

マクロが自動実行されない原因として見落とされがちなのが、ファイルの保存形式です。Excelのファイル形式には複数の種類があり、マクロを使うには正しい形式で保存する必要があります。

Excelファイル形式とマクロの関係

拡張子 形式名 マクロの保存 備考
.xlsm Excel マクロ有効ブック 可能 マクロを使うならこれが必要
.xlsx Excel ブック 不可 マクロは保存されず削除される
.xlsb Excel バイナリ ブック 可能 大容量ファイル向けバイナリ形式
.xls Excel 97-2003 ブック 可能 旧形式。互換性用途向け
.xlam Excel マクロ有効アドイン 可能 アドインとして配布する用途

.xlsxで保存してしまった場合の問題

VBAでマクロを書いた後、ファイルを「.xlsx」で保存しようとすると、Excelが「VBプロジェクトを含まないブックとして保存しますか?」という警告を表示します。ここで「はい」を選んでしまうと、マクロのコードがすべて削除されて保存されます。

.xlsxを.xlsmに変換する手順

  1. Excelで問題のファイルを開きます。
  2. ファイル」→「名前を付けて保存」をクリックします。
  3. 保存先を選択した後、「ファイルの種類」ドロップダウンから「Excel マクロ有効ブック(*.xlsm)」を選択します。
  4. ファイル名を確認して「保存」をクリックします。
  5. 元の.xlsxファイルとは別に.xlsmファイルが作成されます。

マクロのコードが消えてしまった場合は、VBエディタを開いて再度コードを書き直す必要があります。

保存時に自動で.xlsxになってしまう場合

OneDriveやSharePointに保存しているファイルは、設定によって自動的に.xlsx形式で保存されることがあります。また、「既定のファイル形式」が.xlsxに設定されている場合も同様です。

既定のファイル形式を変更する方法

  1. 「ファイル」→「オプション」→「保存」をクリックします。
  2. 「ブックの保存」セクションの「ファイルをこの形式で保存する」ドロップダウンを「Excel マクロ有効ブック (*.xlsm)」に変更します。
  3. 「OK」で保存します。

その他のチェックポイント・上級者向けトラブルシューティング

個人用マクロブック(PERSONAL.XLSB)の問題

個人用マクロブック(PERSONAL.XLSB)は、すべてのExcelファイルで使えるマクロを保存する特殊なファイルです。このファイルが破損または無効になっていると、Auto_Openが期待通りに動かないことがあります。

確認方法

  • 「表示」→「再表示」をクリックして PERSONAL.XLSB が表示されるか確認します。
  • VBエディタで「PERSONAL.XLSB」プロジェクトにエラーがないか確認します。
  • 問題がある場合は、%AppData%\Microsoft\Excel\XLSTART\ フォルダ内の PERSONAL.XLSB を削除して再作成します。

アドインによる競合

インストールされているExcelアドインがマクロの自動実行と競合することがあります。

  1. 「ファイル」→「オプション」→「アドイン」をクリックします。
  2. 下部の「管理」ドロップダウンで「Excel アドイン」を選択し「設定」をクリックします。
  3. すべてのアドインのチェックを外してExcelを再起動し、マクロが動くか確認します。
  4. 動くようになれば、アドインを1つずつ戻して原因を特定します。

Excelの修復インストール

上記の対処法をすべて試してもなお改善しない場合、Excelのインストール自体が破損している可能性があります。

  1. 「設定」→「アプリ」→「インストール済みアプリ」から Microsoft 365(またはOffice)を見つけます。
  2. 「変更」をクリックし、「クイック修復」を選択して実行します。
  3. それでも改善しない場合は「オンライン修復」を試します。
Excelマクロ自動実行されない対処法 画像3

よくある質問(FAQ)

Q1. マクロのセキュリティ設定を変更したのに、まだ自動実行されない

A. 設定変更後にExcelを完全に再起動(終了→再度起動)しましたか? セキュリティ設定の変更はExcelを再起動しないと反映されない場合があります。また、ファイルが「信頼済みドキュメント」として登録されていない可能性もあります。ファイルを一度閉じ、再度開いて「コンテンツの有効化」をクリックしてください。

Q2. 以前は動いていたのに、Windowsアップデート後から動かなくなった

A. 2022年以降のWindowsアップデートで、ネットワークドライブ上のOfficeファイルのマクロがブロックされる仕様変更が行われました。ネットワークドライブやクラウドストレージ(OneDrive等)上のファイルのマクロが動かなくなった場合は、ローカルドライブ(CドライブやDドライブ)にファイルをコピーして実行するか、そのフォルダを「信頼できる場所」に追加してください。

Q3. Auto_OpenとWorkbook_Openの両方を書いたら、どちらが先に実行される?

A. Workbook_Open(イベント)が先に実行され、その後 Auto_Open(サブルーチン)が実行されます。ただし、両方を書くと処理が二重になる可能性があるため、通常はどちらか一方だけを使用することを推奨します。現在の標準はWorkbook_Openです。

Q4. Shift キーを押しながらファイルを開くとマクロが実行されないと聞きました

A. その通りです。Excelはファイルを開く際にShiftキーを押し続けると、Auto_OpenおよびWorkbook_Openの自動実行をスキップする機能があります。意図せずShiftキーを押しながら開いていた、またはShiftキーが何らかの理由で押された状態になっていた可能性を確認してください。

Q5. マクロは有効になっているのに、特定の処理だけ動かない

A. コンパイルエラーが発生している可能性があります。VBエディタ(Alt + F11)を開き、「デバッグ」→「VBAProjectのコンパイル」を実行してエラーがないか確認してください。また、参照設定(ツール→参照設定)で「参照不可」になっているライブラリがある場合も、マクロの実行が途中で止まることがあります。

Q6. マクロを含むファイルをメールで送ったら、受け取った相手のPCで動かない

A. メール添付でダウンロードされたファイルは保護ビューで開かれるためです。受け取った方に以下を依頼してください:①ファイルを右クリック→プロパティ→「許可する」にチェック→OK②Excelで開き「編集を有効にする」→「コンテンツの有効化」をクリック。また、受け取り側のPCでもセキュリティ設定の確認が必要な場合があります。

Q7. Excel Onlineでマクロが動かない

A. Excel Online(Webブラウザ版)はVBAマクロに対応していません。マクロを実行するには、デスクトップ版のExcel(Microsoft 365またはExcel 2019/2021)が必要です。「Excelで開く」ボタンをクリックしてデスクトップ版で開き直してください。

Q8. Mac版Excelでもマクロの自動実行はできますか?

A. はい、Mac版Excel(Microsoft 365 for Mac)でもVBAマクロの自動実行は可能です。ただし、セキュリティ設定の場所が異なります。「Excel」メニュー→「環境設定」→「セキュリティ」からマクロの設定を変更してください。また、Mac版ではWindowsと一部の機能やAPIが異なるため、Windows向けに書かれたマクロがそのまま動かないことがあります。

まとめ

Excelのマクロが自動実行されない・起動時に動かない問題は、複数の原因が絡み合っています。本記事で解説した対処法をまとめると以下のとおりです。

対処法 効果 難易度
マクロのセキュリティ設定を変更 ブロック解除で自動実行を許可 簡単
保護ビューの解除・コンテンツ有効化 ダウンロードファイルのブロックを解除 簡単
信頼できる場所にフォルダを追加 特定フォルダのマクロを常時許可 普通
ファイルプロパティからブロック解除 ファイル単位でセキュリティ解除 簡単
.xlsmで保存し直す マクロ非対応形式の問題を解決 簡単
VBAコードの記述場所を確認 正しいモジュールへの配置で動作 普通
EnableEventsの確認・修正 イベントが無効化されている場合に有効 普通

多くの場合は「マクロのセキュリティ設定の変更」「保護ビューの解除」「ファイルを.xlsm形式で保存」のいずれかで解決します。

それでも解決しない場合は、VBAコードの記述ミス(Workbook_Openの配置場所、EnableEventsの状態)や、グループポリシーによる制限が原因である可能性が高いです。

この記事の手順を上から順番に試していけば、ほとんどのケースでExcelのマクロ自動実行問題を解決できるはずです。ぜひ参考にしてみてください。

Check Also

Excelウィンドウ枠固定できない対処法

【2026年最新版】Excelのウィンドウ枠の固定ができない・解除できない原因と対処法【完全ガイド】

「Excelでウィンドウ枠の固 …