「Excelを開いたら赤いバーが出てマクロが動かない!」そんな経験、ありませんか?
実はこれ、Microsoftが2022年から段階的に強化してきたセキュリティ仕様が原因で、2026年現在もその影響を受けている人が後を絶ちません。省庁から送られてきたアンケートExcelが開けなかった、社内共有ファイルのマクロが突然動かなくなった、そんな声はSNSでも毎日のように見かけます。
この記事では、Excelのマクロセキュリティブロックをなぜ解除できないのかという根本原因から、初心者でもすぐ実践できる解除手順、さらに企業のIT担当者向けの高度な対処法まで、2026年4月時点の最新情報をもとに徹底解説します。
- ブロックの原因となる「MOTW(Mark of the Web)」の仕組みと2022年以降の仕様変更の全貌
- 個人ユーザーから企業のIT管理者まで使えるブロック解除の全手順
- 「プロパティにチェックボックスが出ない」など、よくあるつまずきポイントの解決策
- そもそもなぜExcelのマクロがブロックされるの?2022年からの大きな仕様変更
- Excelマクロのセキュリティブロック解除・3つの基本方法
- それでも解除できない!よくある原因と対処法
- 企業のIT担当者向け・グループポリシーとデジタル署名による一括管理
- VBAマクロの代替を検討する時代に入った
- 情シス10年以上の現場経験から語る「マクロブロック問題」の真実
- 現場で本当に使われている解除手順・完全版
- 10年情シスが語る「絶対にやらかしてはいけない」落とし穴
- 現場でしか知り得ないノウハウ情シスの裏側と社内政治の話
- 現場で本当に役立つVBAコード集
- 現場でよくある「どうしたらいいか本当にわからない」困った問題5選
- ぶっちゃけこうした方がいい!
- Excelマクロのセキュリティブロック解除に関するよくある質問
- 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
- まとめ
そもそもなぜExcelのマクロがブロックされるの?2022年からの大きな仕様変更
ExcelのVBAマクロがブロックされるようになった背景には、Microsoftによるセキュリティポリシーの大転換があります。ここを理解しないまま解除作業をしても、また同じ壁にぶつかることになるので、まずは仕組みをしっかり押さえておきましょう。
MOTW(Mark of the Web)とは何か?
Windowsには、インターネット経由でダウンロードしたファイルや、メールの添付ファイルに対して、自動的に「このファイルはインターネットから来たものだ」という目印を付ける機能があります。これがMOTW(Mark of the Web)と呼ばれるものです。
具体的には、ファイルの代替データストリーム(ADS)に「ZoneId=3」という値が書き込まれます。WindowsがNTFSファイルシステム上のファイルを扱う際、このZoneIdをチェックして、インターネットゾーンからのファイルかどうかを判定しているのです。ちなみに、FAT32形式のUSBメモリなどに保存されたファイルにはMOTWは付与されないため、この問題は発生しません。
2022年以前と以降で何が変わったのか?
2022年以前のExcelでは、インターネットからダウンロードしたマクロ付きファイルを開いても、画面上部に黄色い警告バー(「コンテンツの有効化」ボタン)が表示されていました。ユーザーがそのボタンをクリックすれば、マクロを実行できたのです。
ところが、この「コンテンツの有効化」ボタンを、内容をよく確認せずにクリックしてしまうユーザーが非常に多く、悪意あるマクロによるウイルス感染やランサムウェア被害が後を絶ちませんでした。Verizonのデータ侵害調査レポートによれば、サイバー攻撃の74%に人的ミスが関与しており、Officeマクロはその主要な侵入経路の一つとされていました。
そこでMicrosoftは2022年4月から方針を大きく転換し、MOTWが付与されたファイルのマクロは、たとえ「編集を有効にする」を押しても、既定で完全にブロックされるよう仕様を変更しました。以前の黄色いバーの代わりに、赤い「セキュリティリスク」バーが表示されるようになり、「コンテンツの有効化」ボタン自体がなくなったのです。
この変更はExcelだけでなく、Word、PowerPoint、Access、Visio、Project、Publisherのすべてが対象です。ただし、Mac版のOffice、iOS版、Android版、ブラウザ版のOfficeには影響しません。
2026年現在も続く追加強化の動き
Microsoftのセキュリティ強化はここで止まっていません。2025年7月に発表された計画によれば、2025年10月から2026年7月にかけて段階的に、Excelが外部ワークブックリンクのうち危険なファイル形式(.exeや.dllなど)へのリンクもブロックするようになります。該当するワークブックには「#BLOCKED」エラーが表示され、フィッシング攻撃への悪用を防ぐ仕組みです。Microsoft 365のBuild 2509以降ではすでに警告が表示されるようになっているので、企業のIT担当者はとくに注意が必要です。
Excelマクロのセキュリティブロック解除・3つの基本方法
ブロックの仕組みを理解できたところで、実際の解除方法を見ていきましょう。大きく分けて3つのアプローチがあります。それぞれに向いているシーンが異なるので、自分の状況に合った方法を選んでください。
方法1ファイルのプロパティから「ブロックを解除する」
最も手軽で一般的な方法です。特定のファイル単体に対してMOTWを取り除く操作なので、特定のExcelファイルだけを信頼したい場合に最適です。
- Excelファイルを開いている場合はまず閉じます。開いたままだと設定が反映されないことがあります。
- エクスプローラーで対象のExcelファイルを探し、右クリックして「プロパティ」を選択します(またはファイルを選択して「Alt + Enter」を同時押しすると素早く開けます)。
- 「全般」タブを開き、一番下のほうに「セキュリティ」の項目と「許可する」または「ブロックの解除」というチェックボックスがあるかを確認します。
- チェックボックスにチェックを入れて、「適用」→「OK」の順にクリックします。
- Excelファイルを再度開いて、マクロが動作するか確認しましょう。
この操作は、MOTWのZoneId情報をファイルから削除するものです。技術的に言えば、PowerShellの
Unblock-File
コマンドレットを使った場合と同じ効果があります。
重要な注意点として、この方法はNTFSファイルシステム(通常のCドライブやDドライブ)に保存されたファイルにのみ有効です。 OneDriveやSharePoint上のファイルを直接開いている場合や、ネットワーク共有上のファイルでは「セキュリティ」項目自体が表示されないことがあります。その場合は方法2を試してください。
方法2「信頼できる場所」にフォルダを登録する
複数のExcelファイルをまとめて使いたい場合や、プロパティにチェックボックスが表示されない場合に有効な方法です。特定のフォルダを「信頼できる場所」としてExcelに登録することで、そのフォルダに入ったファイルはMOTWがあってもマクロが実行されます。
- まず、PCのローカルドライブ(例Cドライブのデスクトップや「ドキュメント」フォルダ内)に信頼用のフォルダを作成します。たとえば
C:\Users\ユーザー名\Documents\TrustedMacrosのような場所です。
- ブロックされているExcelファイルをそのフォルダに移動または保存します。
- Excelを開き、「ファイル」→「オプション」をクリックします。
- 「Excelのオプション」画面が開いたら、左側のメニューで「トラストセンター」を選択し、右側に表示される「トラストセンターの設定」をクリックします。
- 左側のメニューで「信頼できる場所」を選択し、「新しい場所の追加」をクリックします。
- 「参照」ボタンから先ほど作成したフォルダを指定します。サブフォルダもまとめて信頼したい場合は「この場所のサブフォルダーも信頼する」にもチェックを入れましょう。
- 「OK」を押して画面を閉じます。
ここで絶対に注意してほしいのは、どのフォルダを「信頼できる場所」に登録するかです。「デスクトップ全体」や「ダウンロードフォルダ」などを信頼できる場所に設定してしまうと、うっかり危険なファイルを置いてしまうリスクが格段に高まります。マクロファイル専用の専用フォルダを作って、そこだけを登録するようにしましょう。
また、ネットワーク上の共有フォルダをパスに指定する場合、IPアドレス形式(例
\\192.168.1.10\share
)だとOfficeに信頼できる場所として認識されないことがあります。その場合は、Windowsの「hosts」ファイルにIPアドレスとサーバー名の対応を追記し、UNC形式のサーバー名(例
\\ABCServer\share
)でパスを指定し直すと解決できます。
方法3PowerShellで一括解除する(複数ファイルに対応)
複数のExcelファイルのブロックをまとめて解除したい場合や、プロパティ画面で「許可する」のチェックボックスが表示されない場合に有効なのが、PowerShellを使った方法です。
PowerShellとはWindowsに標準で搭載されているコマンドライン操作ツールで、コマンドを入力することでWindowsのさまざまな機能を制御できます。難しそうに聞こえますが、手順はシンプルです。
単一ファイルのブロックを解除する場合は、PowerShellを管理者権限で起動し、以下のコマンドを入力してEnterを押します。
Unblock-File -Path "C:\Users\ユーザー名\Documents\example.xlsm"
特定フォルダ内のすべての.xlsmファイルをまとめて解除したい場合は、次のコマンドが便利です。
Get-ChildItem -Path "C:\Users\ユーザー名\Documents\MacroFiles" -Filter "*.xlsm" | Unblock-File
PowerShellを管理者権限で開くには、Windowsのスタートメニューを開いて「powershell」と入力し、表示された「Windows PowerShell」を右クリックして「管理者として実行」を選択してください。
それでも解除できない!よくある原因と対処法
上記の方法を試してもまだマクロが動かない場合、別の原因が絡んでいる可能性があります。よくあるケースをまとめました。
プロパティに「セキュリティ」項目が表示されない
これはよくある悩みです。主な原因として、ファイルがOneDriveやSharePoint、またはネットワーク共有上に保存されており、WindowsがそのファイルをローカルのNTFSファイルとして認識していないことが挙げられます。
解決策は、まずファイルをPC本体のローカルドライブ(例Cドライブのドキュメントフォルダ)にコピーまたは移動することです。ローカルに保存し直してから右クリック→プロパティを確認すると、「セキュリティ」項目が現れるケースがほとんどです。
「許可する」にチェックを入れても解除されない
チェックを入れて「OK」を押したはずなのに、次回ファイルを開いてもまだブロックされるという場合は、会社や組織のグループポリシーによってマクロがブロックされている可能性があります。
企業環境では、IT管理者がグループポリシー(GPO)またはMicrosoft Intuneを使って「インターネットからのOfficeファイルのマクロの実行をブロックする」ポリシーを展開していることがあります。この場合、一般ユーザーがトラストセンターの設定を変更しようとしても、設定がグレーアウトされて変更できなかったり、変更してもポリシーによって上書きされてしまったりします。このケースでは、自分で解決しようとするよりも、社内のIT担当部門に相談するのが最善策です。
ZIPファイルを解凍せずに開いていた
これは意外と多いケースです。Excelファイルを含むZIPファイルをダウンロードして、解凍せずにZIPの中のExcelファイルを直接開いていた場合、マクロはブロックされます。必ずZIPファイルを解凍してからExcelファイルを開くようにしましょう。解凍するには、ZIPファイルを右クリックして「すべて展開」または「解凍」を選択してください。
OneDriveやSharePointからファイルを直接開いている
OneDriveやSharePointから同期したファイルや、ブラウザで「Excelで開く」をクリックしてダウンロードしたファイルには、MOTWが付与されます。これらのファイルをそのまま開くとマクロがブロックされます。
解決策は2つあります。ひとつは、先述のプロパティからのブロック解除をローカルコピーに対して行う方法。もうひとつは、SharePointやOneDriveのデスクトップアプリを使って同期したフォルダを「信頼できる場所」に登録するか、IT管理者にSharePoint/OneDriveのドメインをグループポリシーの「信頼済みサイト」ゾーンに追加してもらう方法です。
企業のIT担当者向け・グループポリシーとデジタル署名による一括管理
複数のPCを管理するIT担当者向けに、組織全体でのマクロセキュリティ管理の方法を解説します。
グループポリシーで組織全体を一括管理する
Active DirectoryやMicrosoft Intuneを利用している企業環境では、グループポリシーオブジェクト(GPO)またはクラウドポリシー(config.office.com)を使って、全社のOfficeマクロ設定を一括管理することができます。
Microsoft公式のドキュメントでは、「インターネットからのOfficeファイルのマクロの実行をブロックする」ポリシーを有効にしつつ、VBAマクロ通知の設定を「デジタル署名されたマクロを除くすべてのマクロを無効にする」に設定することが推奨されています。これにより、信頼された発行元によってデジタル署名されたマクロのみを実行可能にし、それ以外の野良マクロはすべてブロックするという堅牢な運用が実現します。
グループポリシーエディターでの設定場所は、「ユーザーの構成」→「管理用テンプレート」→「Microsoft Excel 2016」→「Excelのオプション」→「セキュリティ」→「トラストセンター」です。なお、config.office.comから設定したクラウドポリシーは、個々のPCのトラストセンター設定を上書きするため、ユーザーが勝手に設定を変更できないよう制御したい場合に有効です。
VBAマクロにデジタル署名を付与して信頼済み発行元として管理する
社内で開発・配布するマクロ付きExcelファイルには、コード署名証明書でデジタル署名を付与することを検討してください。デジタル署名されたマクロは、証明書が「信頼済み発行元」としてユーザーのPC(またはグループポリシー)に登録されていれば、MOTWが付いていても自動的に実行が許可されます。
コード署名証明書は認証局(CA)から取得できます。社内CA(Active Directory証明書サービスなど)を持っている企業なら、内部証明書を使った署名と配布も可能です。この方法は初期設定に手間がかかりますが、一度整備してしまえば以後のファイル配布が格段にスムーズになります。
Readiness Toolkitで影響を受けるファイルを事前に洗い出す
Microsoftが無償提供しているツール「Readiness Toolkit for Office add-ins and VBA」を使うと、社内のPCにあるExcelファイルのVBAマクロを一括スキャンし、どのファイルがブロックの影響を受けるかを事前に把握できます。組織でのOfficeアップデート前に実施しておくと、想定外のトラブルを事前に防げます。
VBAマクロの代替を検討する時代に入った
ここまでブロック解除の方法を解説してきましたが、2026年時点でのセキュリティ状況を鑑みると、「そもそもVBAマクロへの依存を減らしていく」という方向性も真剣に検討する価値があります。
Microsoftは近年、VBAの代替として以下のような仕組みを強力に推進しています。Office Scripts(オフィスのスクリプト)は、ExcelのオートメーションをTypeScriptベースで記述できる機能で、クラウドセーフかつ監査ログが残せます。Power Automateとの連携で、定期実行やトリガー起動も可能です。また、Pythonを活用したExcel自動化(openpyxlやxlwingsなど)も、開発者にとっての現実的な選択肢になっています。
もちろん、既存の資産として大量のVBAマクロが動いている企業にとって、すぐに切り替えるのは難しいのが現実です。しかし長期的には、MOTWブロックに悩まされ続けるよりも、よりセキュアなモダンな自動化ツールに移行していくことがビジネスのリスクを下げる有効な戦略です。
情シス10年以上の現場経験から語る「マクロブロック問題」の真実
こんにちは。情報システム部門(いわゆる「情シス」)で10年以上働いてきたベテランエンジニアです。ExcelのVBAマクロについては、設計・開発・保守・トラブル対応と、あらゆる局面で向き合ってきました。
ここからは、一般的な解説記事では絶対に出てこない「現場の本音」をお届けします。「なんでこんなに面倒なの?」「プロはどう対処してるの?」という疑問に、実体験をもとに正直にお答えします。
現場で本当に使われている解除手順・完全版
よくある解説記事は「プロパティでチェックを入れましょう」で終わっていますが、現場ではそれだけじゃ全然足りないんです。私が社内ヘルプデスクで何百件ものマクロトラブルを解決してきた中で確立した、再現性の高い手順を公開します。
現場式・マクロブロック解除フローチャート(言葉で説明)
まず「ファイルはどこから来たのか」を確認することが最初のステップです。これを確認しないまま闇雲に設定をいじると、後で自分が困ります。
-
ファイルの入手経路を確認する
「メール添付で受け取った」「ブラウザでダウンロードした」「SharePointやOneDriveから開いた」「ZIPファイルの中に入っていた」のどれかを必ず最初に確認してください。入手経路によって対処法が変わります。これを怠ると、後述する「いくらやっても解除できない」という沼にはまります。 -
ファイルをまずローカルの専用フォルダに移動する
デスクトップやダウンロードフォルダにそのまま置いておくのはNGです。なぜかというと、Windowsがデスクトップを「インターネットゾーン」として扱うケースがあるからです。私はC:\Work\Macrosのような、自分が管理する専用フォルダを常に用意するようにしています。まずここにファイルを移動してから、すべての作業を始めましょう。
-
ZIPファイルから取り出した場合はZIP自体も先にブロック解除する
これ、知らない人がとても多いのですが、ZIPファイルにMOTWが付いていると、解凍したファイルにもMOTWが引き継がれます。つまり「ZIPを解凍してExcelを取り出す」前に、「ZIPファイルのプロパティを開いて許可するにチェックを入れる」のが正解です。順番が逆になると、Excelファイルのブロックを解除したはずなのにまた翌日から動かない、という不思議な現象が起きます(実際に何度も問い合わせを受けました)。 -
Excelが完全に閉じている状態でプロパティを開く
当たり前に思えますが、Excelでファイルを開いたまま別のウィンドウでプロパティを変更しようとする人が意外と多いです。Excelがファイルを掴んでいる状態では設定が反映されないどころか、Excelを閉じた時点で変更がリセットされることもあります。必ずExcelをすべて閉じてからプロパティ操作をしましょう。 -
プロパティで「許可する」または「ブロックの解除」にチェックを入れる
「全般」タブを開いたとき、下のほうに「セキュリティこのファイルは他のコンピューターから取得したものです…」という文章と、その右に小さなチェックボックスがあります。Windows 11と10では表現が少し異なりますが、どちらも「チェックを入れて適用」です。「OK」だけ押してはいけません。必ず「適用」を押してから「OK」を押す順番を守ってください。「OK」だけだと適用されないことがあります(これも問い合わせ案件の定番でした)。 -
Excelを開きなおして動作確認をする
プロパティを閉じた後、すぐにファイルをダブルクリックしてExcelを開きます。このとき赤いバーではなく、黄色いバー(「コンテンツの有効化」ボタン付き)が表示されたら大成功です。あとはそのボタンを押せばマクロが動きます。もし黄色いバーすら出ないのに動かない場合は、次のトラストセンターのマクロ設定を確認してください。 -
それでも動かない場合はトラストセンターのマクロ設定を確認する
「ファイル」→「オプション」→「トラストセンター」→「トラストセンターの設定」→「マクロの設定」を開きます。「通知を表示してVBAマクロを無効にする」が選ばれていれば正常です。「すべてのVBAマクロを無効にする(通知なし)」になっている場合は、黄色いバーすら出ずにマクロが静かにブロックされます。この設定が組織のグループポリシーでロックされていて変更できないなら、IT部門の出番です。
10年情シスが語る「絶対にやらかしてはいけない」落とし穴
私自身もやらかしたことがあるし、後輩や他部署の社員がやらかしてヘルプデスクに駆け込んでくるケースを何十件と見てきました。その中から「これだけは知っておいてほしい」というものをまとめます。
落とし穴その1「信頼できる場所」にCドライブのルートを登録してしまった
これは実際に新入社員がやらかして、私が震えた案件です。「信頼できる場所」の登録方法を調べた結果、
C:\
(Cドライブの根っこ)を丸ごと登録してしまったのです。
どういう危険があるかというと、悪意あるマクロを含むExcelファイルが何らかの経路でCドライブのどこかに置かれた瞬間に、自動的に信頼済みとして実行されてしまいます。ウイルス対策ソフトを置くセーフティネットを自分で外してしまうようなものです。
正解は「マクロファイル専用のフォルダを一つ作って、そこだけを登録する」です。たとえば
C:\Work\TrustedMacros
というフォルダを作り、そのフォルダに入れたファイルだけを信頼する、という運用にすれば被害を最小限に抑えられます。
落とし穴その2「すべてのマクロを有効にする」設定にして放置した
「面倒くさいから一番ゆるい設定にしちゃおう」という気持ち、わかります。私も若い頃に自分のPCでやりました。数ヶ月後に怪しいExcelファイルを何も知らずに開いて、社内ネットワークにウイルスをばらまきかけたという黒歴史があります(幸いウイルス対策ソフトが検知してくれましたが)。
「すべてのマクロを有効にする」は、「どんなファイルのマクロも問答無用で実行する」という設定です。悪意ある攻撃者が最も好む設定でもあります。この設定のまま何年も使い続けている人が企業の中に一定数いることは、情シスの人間として知っています。絶対にやめてください。
落とし穴その3ネットワークドライブのパスをIPアドレスで登録した
社内の共有サーバー上にあるExcelファイルのマクロがブロックされる問題で、「信頼できる場所」にネットワークパスを登録しようとした際、こんなパスを入力する人がいます
\\192.168.1.50\共有フォルダ
これ、登録はできるんですが効かないんです。Microsoft OfficeはIPアドレス形式のネットワークパスを「信頼できる場所」として認識しない仕様があります。
\\サーバー名\共有フォルダ
という形式(UNC形式)でないとダメです。サーバー名がわからない場合は、サーバーの管理者に聞くか、Windowsの
hosts
ファイルにIPとサーバー名の対応を書いて名前解決させる必要があります。
落とし穴その4OneDriveの同期フォルダを信頼できる場所に登録した
OneDriveで同期しているフォルダを「信頼できる場所」に登録した場合、ローカルPCから見れば信頼されたフォルダですが、そのフォルダに置いたファイルがクラウドから再同期されるたびにMOTWが再付与されるケースがあります。「信頼できる場所に登録したはずなのになんか動いたり動かなかったりする」という問い合わせのほとんどがこれでした。OneDriveの同期フォルダはできれば信頼できる場所に使わず、完全なローカルフォルダを使うほうが安定します。
現場でしか知り得ないノウハウ情シスの裏側と社内政治の話
ここからは少し踏み込んだ話をします。普通の解説記事には絶対に書いてない「組織の中でマクロ問題がなぜこじれるのか」という話です。
なぜ情シスはマクロブロックをすぐ解除してくれないのか?
「情シスに頼んだら『セキュリティポリシーなので対応できません』と言われた」という経験がある方、いますよね?これ、情シスが意地悪をしているわけじゃないんです。
情シスには、マクロ解除を一件許可するたびに、そのリスクを「承認した責任者」が発生するという問題があります。もし解除したファイルがウイルスだった場合、「あのとき許可した担当者」の責任になります。セキュリティインシデントが起きると、担当者の評価が下がるだけでなく、場合によっては懲戒処分の対象にもなります。だから「ポリシーを盾にして断る」という対応が生まれるんです。
この問題を突破するには、「どのファイルのマクロを解除したいのか」「そのファイルはどこから来たものか」「なぜ必要なのか」「ファイルの送信元の信頼性はどうか」を具体的に文書化して、上長の承認を取ってから情シスに依頼するというルートを通すのが一番スムーズです。情シス側としても、上長承認があれば「承認された案件の実施」という立場になれるので、動きやすくなります。
「あの部署だけマクロが使えてずるい」問題
10年間情シスをやっていると、「経理部は昔から使っているから特例でマクロ解除されている」「営業部は部長が声が大きいから通っている」という組織的な不公平が蓄積されていきます。そして新しく入ってきた部署や人が「私たちも同じように使いたい」と言うと、「前例があるから特例扱いできない」という変な壁ができる。
こういう現場では、デジタル署名によるマクロ管理が本当に有効です。「信頼できる発行元として登録された証明書で署名されたマクロのみを許可する」というポリシーにすれば、「承認されたマクロだけが動く」という公平で管理しやすい状態を作れます。私が在籍した会社でも、この仕組みを導入してから「なぜあそこだけ」という不満がなくなりました。初期設定は面倒ですが、長期的には絶対にこちらの方が楽です。
Officeアップデートのタイミングで突然マクロが動かなくなる理由
「昨日まで動いていたのに今日から動かない!」という問い合わせが、Officeの更新プログラムが適用された翌朝に集中します。これはMicrosoft 365のCurrentチャネル(月次更新)を使っている環境で特によく起きます。
原因はシンプルで、Officeのアップデートで新しいセキュリティポリシーが適用され、これまで許可されていたマクロが新しい基準に引っかかるようになるからです。企業のIT管理者は、Semi-Annual Enterprise Channel(半期更新チャネル)を使うことで、こういった急な変更に対応する猶予時間を6ヶ月確保できます。CurrentチャネルはMicrosoftが言うように便利ですが、情シスには心臓に悪い変更が突然来ます。本番環境はSemi-Annual一択、というのが私の持論です。
現場で本当に役立つVBAコード集
ここからは、マクロブロック問題に直接・間接に関わる実務で使えるVBAコードを紹介します。それぞれに動作確認済みのExcelバージョンを明記しています。
コード1ファイルを開く前にMOTWの有無を確認するコード
「このファイル、MOTWが付いているかどうか開く前に確かめたい」という場面で使えるコードです。PowerShellを内部から呼び出してZoneId情報を取得します。
動作検証済みバージョンExcel 2019, Excel 2021, Microsoft 365(Windows版)
注意が必要なバージョンExcel 2016(PowerShell呼び出しの権限によっては動作しない場合あり)
動作しないバージョンExcel for Mac(MacはMOTW機構自体が異なるため非対応)
' ================================================
' MOTWチェックファイルにMark of the Webが付いているか確認する
' 使い方CheckMOTW("C:\Work\sample.xlsm") を呼び出すと
' メッセージボックスで結果を表示する
' ================================================
Function CheckMOTW(filePath As String) As Boolean
Dim wsh As Object
Dim result As String
Dim psCommand As String
' PowerShellコマンドを組み立てZoneIdを取得する
' ZoneId=3 ならインターネットゾーン(MOTWあり)
' ZoneIdが取得できなければMOTWなし(信頼済みとみなせる)
psCommand = "powershell -Command ""Get-Item -Stream Zone.Identifier -Path '" & filePath & "' -ErrorAction SilentlyContinue | Get-Content"""
Set wsh = CreateObject("WScript.Shell")
' PowerShellを実行して結果を変数に受け取る
Dim exec As Object
Set exec = wsh.Exec(psCommand)
result = exec.StdOut.ReadAll
' 結果にZoneIdという文字列が含まれていればMOTWあり
If InStr(result, "ZoneId=3") > 0 Then
MsgBox "⚠️ このファイルにはMOTW(インターネット由来の印)が付いています。" & vbCrLf & _
"マクロを使う前にプロパティから『許可する』にチェックを入れてください。", _
vbExclamation, "MOTWチェック結果"
CheckMOTW = True
Else
MsgBox "✅ このファイルにはMOTWはありません。" & vbCrLf & _
"マクロはブロックされていない状態です。", _
vbInformation, "MOTWチェック結果"
CheckMOTW = False
End If
Set exec = Nothing
Set wsh = Nothing
End Function
' --
' 上記関数を呼び出すサンプル(標準モジュールから実行可能)
' --
Sub TestMOTWCheck()
Dim targetFile As String
' チェックしたいファイルのパスをここに入力
targetFile = "C:\Work\Macros\sample.xlsm"
Call CheckMOTW(targetFile)
End Sub
コード2フォルダ内の複数ファイルのブロックを一括解除するコード
「フォルダの中に何十個もマクロ付きExcelファイルがあって、一個一個プロパティを開いてチェックを入れるなんて死ぬほど面倒くさい」という状況は現場でよくあります。このコードを使えば、指定フォルダ内のすべての.xlsxと.xlsmファイルのMOTWを一括削除できます。
動作検証済みバージョンExcel 2019, Excel 2021, Microsoft 365(Windows版)
正常動作が保証されるバージョンMicrosoft 365(Current Channel, Build 2200以降)
注意が必要なバージョンExcel 2016(Windowsのセキュリティポリシーによってはスクリプト実行がブロックされる場合あり)
動作しないバージョンExcel for Mac
' ================================================
' 一括ブロック解除指定フォルダ内のExcelファイルのMOTWを削除する
' 使い方UnblockAllExcelFiles を実行すると
' ダイアログでフォルダを選択でき、選択後に一括解除する
' ⚠️ 実行前に「信頼できるファイルのみ」が入っているフォルダを選ぶこと
' ================================================
Sub UnblockAllExcelFiles()
Dim folderPath As String
Dim wsh As Object
Dim fso As Object
Dim folder As Object
Dim file As Object
Dim psCommand As String
Dim count As Integer
Dim errorCount As Integer
' フォルダ選択ダイアログを表示
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "ブロック解除するExcelファイルが入ったフォルダを選択"
If .Show <> -1 Then
MsgBox "キャンセルされました。", vbInformation
Exit Sub
End If
folderPath = .SelectedItems(1)
End With
' 本当に実行するか確認(誤操作防止)
If MsgBox("フォルダ: " & folderPath & vbCrLf & _
"このフォルダ内のすべてのExcelファイルのブロックを解除します。" & vbCrLf & _
"信頼できるファイルのみが入っているか確認しましたか?", _
vbYesNo + vbQuestion, "確認") = vbNo Then
Exit Sub
End If
Set wsh = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderPath)
count = 0
errorCount = 0
' フォルダ内のすべてのファイルをループ処理
For Each file In folder.Files
' .xlsx .xlsm .xls .xlam のいずれかを対象にする
Dim ext As String
ext = LCase(fso.GetExtensionName(file.Name))
If ext = "xlsx" Or ext = "xlsm" Or ext = "xls" Or ext = "xlam" Then
' PowerShellのUnblock-Fileコマンドを実行してMOTWを削除
psCommand = "powershell -Command ""Unblock-File -Path '" & file.Path & "' -ErrorAction Stop"""
Dim exec As Object
Set exec = wsh.Exec(psCommand)
exec.StdOut.ReadAll ' 出力を読み切る(プロセスの終了を待つ)
If exec.ExitCode = 0 Then
count = count + 1 ' 成功カウント
Else
errorCount = errorCount + 1 ' 失敗カウント
End If
Set exec = Nothing
End If
Next file
' 結果を表示
MsgBox "処理完了!" & vbCrLf & _
"解除成功: " & count & " ファイル" & vbCrLf & _
"エラー: " & errorCount & " ファイル", _
vbInformation, "一括ブロック解除 結果"
Set folder = Nothing
Set fso = Nothing
Set wsh = Nothing
End Sub
コード3マクロ実行前にファイルの安全性を自己診断するコード
社内配布用のExcelツールなどで「このファイルは安全な環境で開かれているか」を起動時に自動チェックさせたい場合に便利なコードです。セキュリティ研修の副教材や、社内マクロツールの自衛手段として活用できます。
動作検証済みバージョンExcel 2019, Excel 2021, Microsoft 365(Windows版)
使い方このコードをWorkbookのOpenイベントに入れると、ファイルを開いたときに自動で安全確認が走ります。
' ================================================
' ファイル起動時の安全確認コード
' ThisWorkbookモジュールのWorkbook_Openイベントに貼り付ける
' ================================================
Private Sub Workbook_Open()
' チェック1信頼できる場所から開かれているか
' Application.Trustedは信頼できる場所から開かれた場合にTrueを返す
If Not Application.Trusted Then
MsgBox "⚠️ 警告このファイルは信頼できる場所から開かれていません。" & vbCrLf & vbCrLf & _
"マクロを安全に使うには" & vbCrLf & _
"①このファイルを C:\Work\TrustedMacros のような" & vbCrLf & _
" 専用フォルダに移動してから開きなおしてください" & vbCrLf & _
"②または、ファイルのプロパティで『許可する』にチェックを入れてください", _
vbExclamation, "セキュリティ確認"
' マクロを中断して閉じる(安全のため)
Application.DisplayAlerts = False
ThisWorkbook.Close SaveChanges:=False
Exit Sub
End If
' チェック2Excelのバージョンが対応しているか
' Excel 2016(バージョン16.0)以上でないと動作が保証されないマクロの場合に使う
If Val(Application.Version) < 16 Then
MsgBox "このマクロはExcel 2016以降が必要です。" & vbCrLf & _
"現在のバージョン:" & Application.Version, _
vbCritical, "バージョンエラー"
Application.DisplayAlerts = False
ThisWorkbook.Close SaveChanges:=False
Exit Sub
End If
' チェック3:マクロが有効な状態で開かれているか
' (このコード自体が動いている時点でマクロは有効なので、
' ユーザーへの案内としてメッセージを表示するだけ)
MsgBox "✅ 安全確認完了!マクロが正常に有効化されています。" & vbCrLf & _
"ご利用ありがとうございます。", _
vbInformation, "起動確認"
End Sub
現場でよくある「どうしたらいいか本当にわからない」困った問題5選
ヘルプデスクに来る問い合わせの中で、「それ自分でどうにかするのは無理だよな…」と思いながらも何とかしてきた問題を厳選してお伝えします。
困り事①設定を変えてもグレーアウトされて変更できない
トラストセンターを開いたら設定項目がグレーアウト(選べない状態)になっていた、という問い合わせは月に何件も来ます。
原因会社のグループポリシーまたはMicrosoft Intune(スマホやPCを管理するクラウドシステム)によって設定が固定されています。個人の設定画面でいくらいじっても、組織のポリシーが30分おきに上書きします。
解決策自分でなんとかしようとしても絶対に無理です。IT部門に連絡し、「業務上必要なため、特定のフォルダを信頼できる場所として追加してほしい」と依頼する必要があります。このとき「そのフォルダを誰が管理しているか」「どんなファイルを置くのか」「なぜ必要なのか」を明確に伝えると話が早く進みます。
困り事②昨日まで動いていたのに今日から突然動かない
Officeが自動更新されたことを誰も気づいていないのに、翌朝からマクロが動かなくなる。情シスあるある中のあるあるです。
原因Windows Updateと一緒にOfficeの更新プログラムが自動適用され、新しいセキュリティポリシーが有効になったためです。とくに「Semi-Annual Channel」から「Current Channel」に更新チャネルが変わったタイミングで起きやすいです。
確認方法Excelを開いて「ファイル」→「アカウント」→「Officeの更新プログラム」を確認し、更新チャネルと最終更新日を見ます。直近で更新があればそれが原因の可能性大です。
応急処置前述のプロパティからのブロック解除をもう一度試す。それで動けばOK。動かない場合はトラストセンターのマクロ設定が更新で変わっていないかも確認しましょう。
困り事③自分で作ったマクロなのにブロックされる
「自分で一から作ったExcelマクロなのにブロックされるのはなぜ?」という質問は、意外と多いです。
原因自分で作ったファイルでも、それを一度メールで自分宛に送ったり、ブラウザのDropboxやGoogleドライブからダウンロードしたりした場合、MOTWが付与されます。「自分が作った」かどうかではなく、「どこから入手したか」でMOTWは判定されます。
解決策作成・保存の段階から「信頼できる場所」として登録したフォルダ内で作業することです。そのフォルダから一度も外に出なければ、MOTWが付与されることはありません。社内共有にアップしてから使う場合は、使う人の端末側で毎回ブロック解除が必要になるので、前述のデジタル署名対応を検討しましょう。
困り事④SharePointに置いてあるファイルを開くたびにブロックされる
SharePointやOneDriveのファイルを開くと毎回ブロックされ、毎回プロパティでチェックを入れる作業が発生する。これが毎日のルーティンになっている人を何人も見てきました。
根本原因SharePoint/OneDriveからダウンロードされるファイルにはMOTWが付与されるため、ローカルの信頼できる場所に入れていても、再ダウンロードのたびにリセットされます。
正しい対処法SharePointのライブラリを「デスクトップアプリで同期」する設定にして、同期先のローカルフォルダを信頼できる場所に登録します。同期フォルダ経由でアクセスする場合、MOTWの扱いが変わり解決するケースがあります。あるいは、IT管理者にSharePointのドメインをIEの「信頼済みサイト」ゾーンに追加(グループポリシー経由)してもらうと、根本解決になります。
困り事⑤マクロは動いたが「ActiveXコントロールがブロックされています」と出た
マクロのブロックは解除できたのに、今度はボタンや入力フォームなどのActiveXコントロールが動かない、という問題もよくあります。
原因マクロのブロック解除とActiveXのブロック解除は別の設定です。MOTWを解除してもActiveX設定が「すべてのコントロールを無効にする」になっていると、フォーム上のボタンや入力欄が動きません。
解決策トラストセンターの設定を開き、「ActiveXの設定」を選びます。「最小限の制限を適用してすべてのコントロールを有効にする(推奨しない)」以外の、「安全として設定されたコントロールのみ有効にする」または「確認メッセージを表示する」を選ぶのが現実的です。「推奨しない」設定は文字通り危険なので避けてください。
ぶっちゃけこうした方がいい!
長々と書いてきましたが、10年以上この問題と戦ってきた私の本音を最後にお伝えします。
まず個人ユーザーの方へ。プロパティを開いてチェックを入れる方法、確かに有効です。でも正直言うと、「毎回これをやる羽目になる状況」そのものを改善するのが一番楽なんですよね。具体的には、「マクロ付きExcelファイルを使う専用フォルダを作り、そこを信頼できる場所に登録する」という一度きりの設定をしておけば、あとはそのフォルダにファイルを移動するだけでOKになります。最初の5分だけ頑張れば、以後は毎回プロパティを開く手間がなくなります。これを知らないまま何年もプロパティ作業を繰り返している人が本当に多いので、ぜひやってみてほしいです。
次に企業のIT担当者の方へ。グループポリシーで全社一律にマクロをブロックするだけの運用、そろそろ限界じゃないですか?ユーザーからの解除依頼が毎月来るなら、デジタル署名+信頼済み発行元管理の仕組みを入れた方が絶対に楽です。最初の構築は面倒ですが、一度整えてしまえば「このマクロはうちが作った安全なものです」という証明書付きのファイルだけを通す仕組みができます。毎月のヘルプデスク案件がごっそり減ります。やってよかったと思える施策のひとつです。
最後に、ちょっと辛口なことを言いますね。2026年時点でVBAマクロに全力依存した業務フローを続けているなら、Power AutomateやOffice Scriptsへの移行を真剣に考える時期に来ていると思います。MOTWの問題はMicrosoftが意図的に作り出しているセキュリティの壁ですが、その壁はこれからさらに高くなっていきます。VBAの解除方法を覚えることも大事ですが、「そもそも解除が不要な仕組みに移行する」という視点を持つことが、長い目で見て最も賢い選択です。
とはいえ、「今すぐ困ってる!」という方にとっては、この記事が少しでもお役に立てていれば幸いです。マクロ問題は地味で面倒ですが、仕組みを理解すれば必ず解決できます。焦らず一つずつ確認してみてください。
Excelマクロのセキュリティブロック解除に関するよくある質問
「許可する」のチェックボックスがグレーアウトして変更できないのですが?
トラストセンターの設定がグレーアウトして変更できない場合、会社のグループポリシーまたはMicrosoft Intuneによって設定が管理・固定されています。この場合、一般ユーザーが自分で変更することはできません。IT部門の担当者に状況を説明して、ポリシーの例外適用か、信頼できる場所の追加を依頼してください。
プロパティで「許可する」にチェックを入れたのに、毎回ブロックされます。
ファイルを毎回OneDriveやSharePointから再ダウンロードしていませんか?ダウンロードのたびに新しいMOTWが付与されてしまうため、毎回ブロック解除が必要になります。ファイルをローカルドライブに保存してから解除するか、保存先フォルダを「信頼できる場所」に登録することで、この問題を根本的に解決できます。
Macのエクセルではこの問題は起きますか?
いいえ、起きません。Microsoftの2022年以降のマクロブロック強化は、Windows版のOffice専用の変更です。Mac版のExcel、iOS・Android版、ブラウザ版(Excel Online)ではMOTWによるブロックは適用されません。ただしMac版にも独自のセキュリティ機能はあるため、マクロが常に無制限に動くわけではありません。
「すべてのマクロを有効にする」に設定すれば解決しますか?
技術的にはマクロが動くようになりますが、強く非推奨です。この設定にすると、MOTWが付いた悪意あるマクロも含めて、あらゆるマクロが制限なく実行されてしまいます。Microsoft公式も「危険性があるコードが実行される可能性がある(推奨しない)」と明示しています。特定のファイルだけを安全に使いたいなら、プロパティからのブロック解除か、信頼できる場所への登録を使い、全体設定は触らないのが鉄則です。
ZIPファイルを解凍してもまだブロックされます。
ZIPファイルにもMOTWが付与されている場合、解凍後のファイルにもそのMOTWが引き継がれることがあります。解凍したExcelファイルのプロパティを確認して「許可する」のチェックボックスが出ているか確認してください。また、ZIPファイル自体を先にプロパティから「許可する」にチェックしてから解凍する方法も有効です。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良...もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
Excelのマクロセキュリティブロックは、Microsoftが2022年から強化したセキュリティ対策に起因するもので、2026年現在もその影響を受けるユーザーは多くいます。最も手軽な解除方法は、ファイルを右クリックしてプロパティを開き、「全般」タブの「セキュリティ」欄にある「許可する」にチェックを入れる方法です。複数ファイルをまとめて扱うなら「信頼できる場所」の登録、大量ファイルを処理するなら
Unblock-File
コマンドを使ったPowerShell一括解除が効率的です。
ただし、解除できない根本原因が組織のグループポリシーにある場合は、IT部門への相談が唯一の解決策になります。自己判断で「すべてのマクロを有効にする」設定にするのは絶対に避け、信頼できるファイルに限って適切な方法で解除する、というセキュリティ意識を持つことが何より大切です。
Microsoftのセキュリティ強化は今後もさらに進む見通しです。業務でVBAマクロを多用している方は、今のうちから解除方法を覚えておくと同時に、Office ScriptsやPower Automateといったモダンな代替ツールの活用も視野に入れておくと、長期的な業務効率化と安全性の両立につながります。






コメント