同僚から「この集計ファイル、開いてボタン押すだけだから」と渡された.xlsmファイル。いざ開いてみたら、画面の上に赤い帯(バー)が出て「セキュリティリスク ファイルのソースが信頼されていないため、Microsoft はマクロの実行をブロックしました」と表示された——。
ボタンを押しても何も起きない、いつもの「コンテンツの有効化」ボタンすら見当たらない。締め切りは目前なのに、いきなり手が止まって焦りますよね。
しかも厄介なのは、原因が1つではないことです。赤バーが出るケース、黄バーが出るケース、そもそもブロックを解除したはずなのに動かないケース、Web版だから構造的に動かないケース——症状によって正しい対処法がまったく違います。間違った対処をしても時間を浪費するだけです。
この記事では、まず冒頭のチェックリストであなたの症状を4パターンに切り分け、それぞれの正しい解決法へ最短でご案内します。特に競合記事がほとんど触れていない「解除したのに動かない5大原因」と「実行時エラー番号別の初動チェック」を、診断表で具体的に解説します。読み終わるころには、もらった.xlsmを自力で動かせるようになっているはずです。
対応バージョン: デスクトップ版 Excel(Windows)/ Microsoft 365・Office 2021・2019・2016。ファイルのプロパティによるブロック解除(MOTW)はバージョン 2203(2022年4月)以降の挙動です。Excel Web版(Office on the web)ではマクロ機能自体が提供されていません。
なお、本記事では「マクロ」と「VBA」をほぼ同じ意味で使っています。厳密な違いが気になる方はExcel VBAとマクロの違いを先に読むと用語の整理がつきますが、今回は「動かないマクロを動かす」ことだけに集中して進めます。
まず確認|あなたの症状はどれ?(症状別チェックリスト)
マクロが動かない原因を切り分けるには、まず「画面に何が表示されているか」を見るのが一番の近道です。次の4パターンのうち、あなたの状況に一番近いものを選んで、該当セクションへ進んでください。
原因ごとに対処がまったく違うので、ここで自分のケースを正しく判断することが、遠回りしないための最重要ステップになります。
| 症状 | 画面の見え方 | 進むセクション |
|---|---|---|
| (A)赤バー | 赤い帯で「マクロの実行がブロックされました」。「コンテンツの有効化」ボタンはない(「詳細情報」のみ) | パターンA |
| (B)黄バー | 黄色い帯で「セキュリティの警告 マクロが無効にされました」。「コンテンツの有効化」ボタンがある | パターンB |
| (C)解除したのに動かない | バーは消えた/解除済みのはずなのに、ボタンを押しても反応がない・エラーが出る | パターンC |
| (D)Web版で動かない | ブラウザ上のExcel(Excel for the web)で開いている。そもそもマクロのメニューが見当たらない | パターンD |
ポイントは「コンテンツの有効化」ボタンの有無です。ボタンが見当たらない赤バーは2022年以降の新しいブロック(MOTW)で、ボタンがある黄バーは従来からある通知です。この2つは仕組みが違うため、解除方法も別物になります。混同して「黄バーの手順」を赤バーに試しても解決しないので注意してください。
「バーは出ていないのに動かない」「ボタンを押すとエラー番号が表示される」という方は、パターンCと最後の「実行時エラー」セクションが本命です。
【パターンA・B】バーが出る → ブロック解除とコンテンツの有効化
まず確認したいのが、ファイルを開いたときに出る警告バーの色です。赤バーならインターネット由来のファイルに対するハードブロック、黄バーなら従来からあるマクロ無効の通知で、対処が変わります。ここはシリーズ第1ステップにあたる部分なので要点に絞り、詳しい設定は既存記事へ案内します。
【パターンA】赤バー「マクロの実行がブロックされました」→ プロパティでブロック解除
赤バーは、インターネット経由で入手したファイル(メール添付・ダウンロード・チャット共有など)に付く「MOTW(Mark of the Web)」という印が原因です。Excelはこの印が付いたファイルのマクロを、2022年以降は問答無用でブロックします。だから「コンテンツの有効化」ボタンが表示されないのです。
解除の基本手順は次のとおりです。ファイルを一度閉じてから操作してください。
- エクスプローラーで該当の
.xlsmファイルを右クリックし、「プロパティ」を開く - 「全般」タブの一番下にある「セキュリティ: このファイルは他のコンピューターから取得したものです。」の右、「許可する」(または「ブロックの解除」)にチェックを入れる
- 「OK」を押す
- ファイルを開き直す
これで赤バーが消えてマクロが使えるようになります。「許可する」のチェックボックスは、MOTWが付いているファイルにしか表示されません。チェックボックスが見当たらない場合は、すでに印が付いていない=別の原因なので、パターンCへ進んでください。
この第1ステップの詳細な手順(PowerShellでの一括解除、信頼できる場所の設定、OneDrive/SharePoint経由のファイルの扱いなど)は、シリーズ第1ステップ記事Excelマクロが有効にならない原因と信頼設定の直し方【状況別】で丁寧に解説しています。本記事はその先の「解除したのに動かない」を主軸にするため、ここでは要点のみにとどめます。
【パターンB】黄バー「コンテンツの有効化」→ 有効化と信頼できる場所
黄色いバーで「セキュリティの警告 マクロが無効にされました」と出て、右側に「コンテンツの有効化」ボタンがある場合は、赤バーより対処はシンプルです。これはMOTWによるハードブロックではなく、トラストセンターのデフォルト設定「通知を含むVBAマクロを無効にする」による、従来からある安全確認の通知です。
信頼できる送り主からのファイルであることを確認したうえで、次のように操作します。
- 黄色いバーの「コンテンツの有効化」ボタンをクリックする
- これでマクロが有効になり、その場で実行できる
ただし、同じファイルを開くたびに毎回このボタンを押すのは面倒です。社内で繰り返し使う信頼済みのファイルなら、決まったフォルダを「信頼できる場所(Trusted Locations)」に登録しておくと、以後は確認なしでマクロが有効になります。信頼できる場所に保存されたファイルは、MOTWの赤バーすら回避できます。
信頼できる場所の登録手順や、トラストセンターでの細かい設定は、こちらもExcelマクロが有効にならない原因と信頼設定の直し方【状況別】に詳しくまとめてあります。「毎回確認が出るのを止めたい」方はあわせてご覧ください。
なお、信頼できる場所はとても強力な設定です。出所のわからないファイルをそのフォルダに放り込むと、危険なマクロも無確認で実行されてしまうので、本当に信頼できるファイルだけに使ってください。
【パターンC】ブロック解除済みなのに動かない|5大原因を診断
ここからが本記事の核心です。「プロパティで許可した」「コンテンツの有効化も押した」——それなのにボタンを押しても反応がない、マクロのメニューが空っぽ、というケースは意外と多いです。競合記事の多くは「ブロック解除」で話を終えてしまいますが、実際の現場で詰まるのはこの「解除後」のほうだったりします。
原因は大きく5つに分けられます。まずは下の診断フロー表で、自分の症状に近い行を探してください。そのあと各原因の対処を順に解説します。
| 症状(こう見える) | 疑われる原因 | まずやること |
|---|---|---|
| マクロのメニューが空・「Visual Basic」に何もない | ①拡張子が.xlsxになっている | 拡張子を確認。.xlsmで保存し直してもらう |
| ファイル上部に黄色い帯「保護ビュー」が残っている | ②保護ビューが解除されていない | 「編集を有効にする」をクリック |
| バーも警告も一切出ず、ただ何も起きない | ③トラストセンターが「通知なしで無効」 | トラストセンターのマクロ設定を確認 |
| トラストセンターの設定項目がグレーアウトして変更できない | ④グループポリシーでロックされている | IT管理者へ問い合わせ |
| 設定は正しいのにファイルを開く瞬間に固まる・落ちる | ⑤セキュリティソフトの干渉(ごくまれ) | 一時的に検査対象から除外して切り分け |
原因① 拡張子が.xlsx のままになっている
最も見落とされがちなのがこれです。マクロを含むファイルは「Excelマクロ有能ブック(.xlsm)」でなければなりません。通常の「Excelブック(.xlsx)」は、セキュリティ上の理由からVBAマクロをそもそも保存できない形式です。
問題は、.xlsmファイルを開いて編集したあと「上書き保存」ではなく「名前を付けて保存」で.xlsxを選んでしまうケースです。このときマクロは警告とともに削除され、消えてしまいます。そのファイルを後から開いても、当然マクロは1つも残っていません。
対処は、ファイル名の末尾が.xlsmになっているかを確認することです。.xlsxになっていたら、そのファイルのマクロは消失済みなので、元のファイルを送ってくれた人に.xlsm形式で再送してもらうしかありません。自分で拡張子だけ.xlsmに書き換えてもマクロは復活しないので注意してください。
原因② 保護ビューが残っている(「編集を有効にする」未実施)
「保護ビュー」は、MOTWのマクロブロックとは別のセキュリティ機能です。インターネット由来のファイルを開くと、画面上部に黄色い帯で「保護ビュー 注意 – インターネットから入手したファイルは~」と表示され、ファイルが閲覧専用状態になります。
この状態ではマクロの実行どころか、セルの編集もできません。帯の中にある「編集を有効にする」ボタンをクリックすると保護ビューが解除され、通常の編集ができるようになります。
赤バーのブロックと保護ビューの両方が出ている場合は、保護ビューの解除(編集を有効にする)→ プロパティでのブロック解除の順で対応するとスムーズです。保護ビューを抜けないと、そもそもマクロの設定にたどり着けないことがあります。
原因③ トラストセンターの設定が「通知なしでVBAマクロを無効にする」
バーも警告も一切出ないのにマクロが動かない場合、トラストセンターのマクロ設定が最も制限的な状態になっている可能性があります。設定は次の場所で確認できます。
「ファイル」→「オプション」→「トラストセンター」→「トラストセンターの設定」→「マクロの設定」
ここには4つの選択肢があります。それぞれの意味を正確に把握しておきましょう。
| 設定名 | 動作 |
|---|---|
| 通知なしでVBAマクロを無効にする | 最も制限的。警告すら出さずにブロック(これが原因のことが多い) |
| 通知を含むVBAマクロを無効にする | デフォルト。ブロックするが黄バーで有効化できる |
| デジタル署名されたVBAマクロを除き、すべてのVBAマクロを無効にする | 署名済みのマクロのみ実行可 |
| VBAマクロを有効にする(推奨しません) | すべてのマクロを実行。リスクが高く非推奨 |
「通知なしでVBAマクロを無効にする」になっていると、警告が一切出ないまま黙ってブロックされるため、「設定したはずなのに動かない」という状況になります。通常は上から2番目の「通知を含むVBAマクロを無効にする」に戻しておくのが、安全性と使い勝手のバランスが取れた標準設定です。一番下の「有効にする」は危険なマクロも無確認で動いてしまうので、選ばないでください。
原因④ グループポリシーでロックされている(設定がグレーアウト)
会社支給のパソコンでよくあるのがこれです。トラストセンターのマクロ設定を開いても、項目がグレーアウトしていて選び直せない——この場合は、IT部門がグループポリシー(またはMicrosoft Intune・クラウドポリシー)でマクロの動作を会社全体に強制設定しています。
組織として「インターネットからのOfficeファイルでのマクロ実行をブロック」などを一律で適用しているため、個人の設定変更は受け付けません。これは故障ではなく、セキュリティポリシーによる正常な制御です。
対処は、自分でどうにかしようとせず、IT管理者・情報システム部門に「業務でこのマクロ付きファイルを使う必要がある」と相談することです。正規の手続きとして、特定フォルダを信頼できる場所に追加してもらう、署名付きマクロとして配布してもらう、といった対応が考えられます。設定を無理にいじろうとすると、別のトラブルを招くこともあるので避けましょう。
原因⑤ セキュリティソフトが干渉している
ごくまれですが、サードパーティ製のセキュリティソフトがマクロ付きファイルの動作を監視し、結果としてマクロの実行を妨げたり、ファイルを開く瞬間にExcelが固まる・落ちることがあります。
①〜④をすべて確認しても原因が特定できないときの「最後に疑う候補」として覚えておいてください。切り分けの方法としては、セキュリティソフトの検査対象から一時的にそのファイル(または保存フォルダ)を除外し、症状が消えるかを確認します。
ただし、これはあくまで原因の切り分けが目的です。除外したまま放置するとセキュリティ上のリスクになりますし、設定変更は会社のルールに反する場合もあります。会社支給端末では、勝手にセキュリティソフトの設定を変えず、IT部門に状況を伝えるのが安全です。
【パターンD】Excel Web版ではマクロは動かない
「ブラウザ上のExcelで開いているのにマクロが動かない」——これは設定の問題ではなく、そもそも構造的に動かないケースです。ここを知らないと、解決しない設定をいくら触っても時間の無駄になります。
Web版でマクロが実行できない構造的な理由
VBAマクロは、もともとWindowsのデスクトップアプリを前提に設計された仕組みです。パソコン上の他のソフトと連携(COM/OLE)して動く構造のため、ブラウザの中で動くExcel for the webにはその土台がありません。Microsoftの公式なプラットフォーム対応表でも、VBAマクロの対応状況は次のように明記されています。
| プラットフォーム | VBAマクロ | Office Scripts |
|---|---|---|
| Excel for Windows(デスクトップ) | 対応 | 対応 |
| Excel for Mac | 対応 | 対応 |
| Excel for the web(Web版) | 非対応 | 対応 |
| Excel for iOS | 非対応 | 非対応 |
つまりWeb版では、マクロを「作る」ことも「実行する」ことも「編集する」こともできません。Web版でマクロ付きファイルを開いても、マクロは実行されないまま、ただ表が開くだけです。
デスクトップ版に切り替えてマクロを実行する手順
もらった.xlsmのマクロを動かしたいなら、Windowsのデスクトップ版Excelで開く必要があります。Web版から切り替える流れは次のとおりです。
- Web版でファイルを開いている状態で、リボンの「編集」付近にある「デスクトップアプリで開く」を選ぶ(OneDrive/SharePoint上のファイルの場合)
- デスクトップ版Excelが起動し、同じファイルが開く
- デスクトップ版で、本記事のパターンA〜Cに沿ってブロック解除・設定確認を行う
ファイルが手元にダウンロードできるなら、いったんパソコンに保存してから、エクスプローラーでダブルクリックしてデスクトップ版Excelで開く方法でも構いません。いずれにせよ、マクロを動かす舞台はWindowsのデスクトップ版と覚えておけば迷いません。
Web版の代替手段:Office Scripts について
「どうしてもWeb版だけで自動化したい」という場合は、VBAの代わりに「Office Scripts」という仕組みが用意されています。これはTypeScriptで記述する自動化機能で、Web版でも動き、Power Automateのフローからも呼び出せます。
ただしOffice Scriptsの利用には企業ライセンスや教育ライセンスが必要で、VBAとは別物の知識が求められます。受け取った.xlsmをそのまま動かす今回の目的からは外れるので、ここでは「Web版にはOffice Scriptsという別系統の選択肢がある」とだけ押さえておけば十分です。
実行時エラーが出る場合の初動チェック(エラー番号早見表)
ブロックの解除も設定もクリアして、いざマクロを実行したら、今度は「実行時エラー ‘1004’」のような番号付きのメッセージが出て止まる——これはマクロの「環境」ではなく「中身(VBAコード側)」で何かが起きているサインです。
受け取った側で完璧に直すのは難しい場合もありますが、番号を見れば「何を確認すればいいか」の当たりはつきます。よく出る4つの番号について、まず確認すべきポイントを早見表にまとめました。
| エラー番号 | 意味 | まず確認すること |
|---|---|---|
| 1004 | アプリケーション定義またはオブジェクト定義のエラー(汎用) | 参照しているシート名・セル範囲が実在するか/シートが保護されていないか |
| 424 | オブジェクトが必要です | 変数のスペルミス/Setステートメントの付け忘れ |
| 91 | オブジェクト変数またはWithブロック変数が設定されていません | オブジェクト変数にSetで値を代入しているか/変数が空(Nothing)になっていないか |
| 13 | 型が一致しません | セルの値が数値か文字列か(特にセルの値をVBAに取り込む際の型の食い違い) |
ひとつ補足しておくと、エラー1004は「汎用エラー」で、いろいろな状況で出る番号です。「シート名が違う」「セル範囲が存在しない」「ワークシートが保護されている」「ファイルパスが間違っている」など原因はさまざまなので、まずはマクロが触ろうとしているシート名やセル範囲が、いま開いているファイルに実在するかを確認するのが近道です。
もらったファイルが「特定のシート名があることを前提に作られている」のに、自分の環境ではそのシートをリネームしてしまった、というのは典型的なつまずきポイントです。
エラー番号別のより詳しい原因と修正方法、デバッグの進め方はVBAエラー解決ガイドで体系的に解説しています。コードに踏み込んで直したい方は、こちらをあわせてご覧ください。
まとめ|症状別フローの振り返りと次のステップ
マクロが動かない原因は1つではありませんが、「画面に何が出ているか」で切り分ければ、対処は一本道です。最後に、症状から解決策への対応を1行ずつ振り返っておきましょう。
| あなたの症状 | やること |
|---|---|
| 赤バー「マクロの実行がブロックされました」 | プロパティで「許可する」にチェック → 開き直す |
| 黄バー「コンテンツの有効化」 | ボタンを押す/繰り返すなら信頼できる場所に登録 |
| 解除したのに動かない | 拡張子.xlsm・保護ビュー・トラストセンター設定を順に確認 |
| 設定がグレーアウト | IT管理者に相談(グループポリシー管理下) |
| Web版で動かない | デスクトップ版Excelで開く(Web版はマクロ非対応) |
| 実行時エラー番号が出る | 番号別早見表でシート名・変数・型を確認 |
まず確認すべきは「コンテンツの有効化ボタンの有無」、次に「拡張子が.xlsmか」、それでもダメならトラストセンターの設定、という順番で見ていけば、ほとんどのケースは自力で解決できます。
無事にマクロが動いたなら、次は「自分でも簡単なマクロを直せる・作れる」ようになると、こうしたトラブルにぐっと強くなります。受け取ったファイルを動かすだけでなく、自分で業務を自動化できるようになれば、仕事の効率は大きく変わります。VBAをこれから学んでみたい方は、まずExcel VBAを学ぶ前に押さえたい基礎知識から始めると、全体像がつかめてつまずきにくくなります。
