.xlsm を開いて「セキュリティ リスク このファイルのソースが信頼できないため、Microsoft によりマクロの実行がブロックされました」という赤いバーが出ているなら、それは不具合でも設定ミスでもありません。Microsoft が 2022 年に Office の既定の動作を変更し、インターネットから取得したファイル内の VBA マクロをブロックするようにしたためです(インターネットからのマクロは、Office で既定でブロックされます - Microsoft Learn)。
そして重要なのは、この赤いバーには「コンテンツの有効化」ボタンがないことです。Microsoft 自身が「このセキュリティ リスクバナーには、[コンテンツを有効にする] オプションはありません」と明記しています。ボタンを探しても見つからないのは当たり前で、直し方は別にあります。最短はファイルのプロパティで「ブロック解除」にチェックを入れること、本筋はそのファイルを信頼できる場所に置くことです。
まずバーの色と文言を見る(3種類あります)
「マクロが無効になりました」と一括りにされがちですが、出ているメッセージによって打つ手がまったく違います。自分の画面がどれなのかを先に確かめてください。
画面に出ている文言 | 意味 | 自分で直せるか |
|---|---|---|
赤いバー「ファイルのソースが信頼されていないため、Microsoft はマクロの実行をブロックしました」 | インターネット由来(Mark of the Web 付き)のファイル。2022 年以降の既定動作 | 直せる(プロパティでブロック解除 / 信頼できる場所) |
赤いバー「管理者が、organization でのマクロの使用を制限しています」 | 組織のポリシーでブロックされている | 直せない(情シスへ) |
黄色いバー「セキュリティの警告 マクロが無効にされました」+[コンテンツの有効化] | 従来からの通知。トラスト センターの「通知を使用してすべてのマクロを無効にする」(既定)による | ボタンを押すだけ |
この区別は Microsoft のエンド ユーザー向け記事でも使われています(ブロックされたマクロ - Microsoft サポート)。黄色なら押せばよく、赤なら押すボタンがない。ここを混同したまま検索すると、関係のない設定を何十分もいじることになります。
この変更が入っているバージョンと、入っていない環境
いつから挙動が変わったのかは更新チャネルによって違います。Microsoft が公表しているロールアウト時期は次のとおりです。
更新チャネル | バージョン | 時期 |
|---|---|---|
最新チャネル | 2206 | 2022 年 7 月 27 日から |
月次エンタープライズ チャネル | 2208 | 2022 年 10 月 11 日 |
半期エンタープライズ チャネル | 2208 | 2023 年 1 月 10 日 |
対象は Windows 上の Office だけです。Microsoft は「この変更は、Mac の Office、Android または iOS デバイス上の Office、または Office on the web には影響しません」と明記しています。同じファイルを Mac で開くと赤いバーが出ないのはこのためで、環境差を疑うときの切り分けに使えます。
なお Office LTSC 2021 や Office 2019 といった永続ライセンス版では、判定の順番が異なり、この既定動作の変更の影響を受けません。「社内の一部の端末だけブロックされる」場合は、まずライセンスと更新チャネルの違いを見てください。
1 枚だけなら、プロパティの「ブロック解除」で終わります
ファイルを右クリック →[プロパティ]→[全般]タブの下にある「ブロック解除」チェック ボックスをオンにして OK。これで Mark of the Web(MOTW)が外れ、次に開いたときはマクロが動きます。何十枚もあるときは PowerShell の Unblock-File コマンドレットで同じ処理ができます(Microsoft のドキュメントも「コマンドレットを使用すると、ファイルの[プロパティ]ダイアログの[全般]タブの[ブロック解除]チェック ボックスをオンにした場合と同じ処理が実行されます」としています)。
MOTW は NTFS の代替データ ストリームに ZoneId という値で記録されています。コマンド プロンプトで notepad ファイル名:Zone.Identifier を実行すると中身が見えます。
ZoneId | ゾーン | マクロの既定動作 |
|---|---|---|
0 | マイ コンピューター | ブロックされない |
1 | ローカル イントラネット | ブロックされない |
2 | 信頼済みサイト | ブロックされない |
3 | インターネット | ブロックされる |
4 | 制限付きサイト | ブロックされる |
実務でつまずくのは次の 3 点です。いずれも Microsoft のドキュメントに明記があります。
- ネットワーク共有上のファイルでは「ブロック解除」チェック ボックス自体が表示されないことがある
- 表示されていても、その共有がインターネット ゾーンと見なされている場合はチェックを入れても効果がない(IP アドレスで共有にアクセスしている場合によく起きます)
- MOTW は NTFS に保存されたファイルにのみ適用され、FAT32 でフォーマットされた USB メモリ上のファイルには付かない
継続して使う業務マクロなら、本筋は「信頼できる場所」です
毎月配られるマクロ付きの集計ブックを、毎回右クリックしてブロック解除するのは運用として続きません。Microsoft も「マクロを含むファイルが信頼できる場所に保存されている場合、ユーザーはファイルの[プロパティ]に移動する必要がなく、[ブロック解除]を選択してマクロの実行を許可します」と、信頼できる場所(Trusted Locations)を正攻法として挙げています。信頼できる場所にあるファイルは MOTW のチェックそのものが無視されます。
ただしこれは「警告が消える」のではなく「検査を外す」設定です。Microsoft のドキュメントは、信頼できる場所のファイルが脅威保護サービスとファイル ブロック設定をバイパスし、ファイルの検証をスキップし、保護ビューでも開かれず、署名のないアドインや VBA マクロ、外部データ接続といったアクティブ コンテンツが警告なしにすべて有効になると書いています。だからこそ、運用の作り方で差が出ます。
やり方 | 向いている場面 | 注意点 |
|---|---|---|
ファイル単位でブロック解除 | 単発・1 枚だけ | 毎回手作業。配り直しのたびに再発 |
専用フォルダーを 1 つだけ信頼できる場所にする | 定期的に使う業務マクロ | 書き込める人を絞る。誰でも保存できる場所を信頼すると、置かれたマクロが全員の端末で無警告に動く |
マクロにデジタル署名し、発行元を信頼する | 自社・ベンダーが継続提供するマクロ | 信頼された発行元は Office 固有ではなく Windows 全体の設定。同じ証明書で署名されたものはすべて動く |
ネットワーク上の場所を信頼できる場所にする | — | Microsoft が推奨していない。セキュリティ ベースラインでは無効化を推奨 |
設定するときは、ルート フォルダー(C: ドライブやマイ ドキュメントそのもの)を指定しないこと。Microsoft のドキュメントに明記された禁じ手です。
「すべてのマクロを有効にする」は選ばないでください
検索して最初に出てくる解決策が、トラスト センター([ファイル]→[オプション]→[トラスト センター]→[トラスト センターの設定]→[マクロの設定])で「すべてのマクロを有効にする」を選ぶ方法です。これは1 枚のファイルを開くために、その端末で今後開くすべてのファイルのマクロを無条件に動かす設定で、保護の範囲がまったく違います。Microsoft の表でも、この選択だけが「保護されていません」に分類されています。
[マクロの設定]の選択 | Microsoft の評価 |
|---|---|
デジタル署名されたマクロを除き、すべてのマクロを無効にする | 保護済み |
警告を表示せずにすべてのマクロを無効にする | 保護済み |
通知を使用してすべてのマクロを無効にする(既定) | 部分的に保護 |
すべてのマクロを有効にする(推奨しません。危険なコードが実行される可能性があります) | 保護されていません |
しかも、この設定を変えても赤いバーが消えない場合があります。既定動作の変更後は、トラスト センターの手前でブロック判定が走るためです。「全部有効にしたのに直らない」という報告が多いのは、安全性を下げただけで症状が残っているという最悪の組み合わせになっているからです。VBA マクロは攻撃側の常用手段であり、Microsoft が既定動作を変えたのはそのためだという前提を忘れないでください。
ここから先は、そもそもマクロ付きのブックを人から人へ配っていることが原因、という話になります。私たちはスプレッドシートを土台にした社内アプリ化のお手伝いもしています。記事の途中で恐縮ですが、同じ悩みを何度も繰り返している方には役に立つかもしれません。
渡し方で挙動が変わる:メール添付・ダウンロード・Teams
「同じファイルなのに、自分はブロックされて同僚は動く」はよくあります。MOTW が付くかどうかはファイルの中身ではなく、受け取り方で決まるからです。
受け取り方 | MOTW | 結果 |
|---|---|---|
メールの添付ファイルを保存して開く | 付く | ブロックされる |
ブラウザーでダウンロードして開く | ゾーン設定次第(Edge はインターネット ゾーンなら付く) | 原則ブロックされる |
OneDrive / SharePoint / Teams のファイルから「デスクトップ アプリで開く」 | 付かない | 動く |
OneDrive 同期クライアントが落としたファイル | 付かない | 動く |
OneDrive に同期された既知のフォルダー(デスクトップ・ドキュメント・ピクチャ等) | 付かない | 動く |
ネットワーク共有(ローカル イントラネットでも信頼済みサイトでもない。IP アドレス指定など) | — | ブロックされる |
つまり、「ダウンロードしてから開く」をやめて「デスクトップ アプリで開く」に変えるだけで消える症状がかなりあります。手順書の 1 行を直すだけなので、設定をいじる前にこれを試してください。
zip に入れて渡すと「動いてしまう」ことがある
圧縮ファイルから解凍したときに MOTW が引き継がれるかどうかは、Microsoft のドキュメントではなく解凍ソフトの仕様で決まります。Windows 標準のエクスプローラーの「すべて展開」や WinRAR・WinZip は引き継ぐ実装になっている一方、7-Zip は 22.00 で対応したものの、引き継ぎは「Propagate Zone.Id stream」という設定で既定はオフと報告されています(主要アーカイバーの MOTW 対応比較)。
ここは一次情報がツールごとに散っているため、この記事では「ツールによって変わる」までを事実として扱います。実務上の判断はひとつだけで、zip にしたら動いたのは安全になったのではなく、検査が外れただけということです。社内で「zip にすれば動く」が裏ワザとして共有され始めたら、それは Microsoft が足した検査を全社で回避している状態なので、解凍方法を標準化するか、配布そのものをやめる方向で手当てしてください。
解除できないときは組織のポリシー(利用者側では外せません)
プロパティに「ブロック解除」が出ない、チェックを入れても効かない、信頼できる場所の設定自体がグレーアウトしている——このときは、組織が「インターネットからの Office ファイルでのマクロの実行をブロックする」ポリシーを配っています。Microsoft はこのポリシーをセキュリティ ベースラインの一部として有効化することを推奨しており、構成済みの組織はそもそも既定変更の影響を受けません(最初からブロックされている)。
切り分けに使える事実が 1 つあります。Microsoft は「ポリシーは、Microsoft 365 Apps for enterprise を使用している場合にのみ使用できます。ポリシーは、Microsoft 365 Apps for business では使用できません」と明記しています。自社が business プランなら、原因はポリシーではなく MOTW 側だと絞り込めます。
情シスや管理者に依頼するときは、「マクロが動きません」ではなくポリシー名と場所で伝えると一往復で済みます。
頼みたいこと | 管理者が見る設定 |
|---|---|
この業務マクロだけ動かしてほしい | 「インターネットからの Office ファイルでのマクロの実行をブロックする」の例外 / 信頼できる場所 #1 |
この共有フォルダーを毎回ブロックしないでほしい | 「サイトとゾーンの割り当て一覧」で信頼済みサイトまたはローカル イントラネットへ |
署名したマクロを通してほしい | 信頼された発行元(コード署名証明書の配布) |
通知だけにしてほしい | 「VBA マクロ通知設定」(Excel では「マクロ通知設定」) |
依頼が通らない場合、利用者側に打てる手はありません。そこまで分かった時点で、そのマクロを配るのをやめるという選択肢を一度天秤にかけたほうが早いこともあります。
そもそも .xlsm を配って回す運用が、毎月この時間を生んでいます
ここまでの原因を並べ直すと、ブロックの大半は「マクロ付きのファイルが人から人へ渡っている」ことの副作用です。メールに添付する、ダウンロードする、共有フォルダーに置く——その経路ごとに MOTW が付き、そのたびに誰かが調べ、誰かが情シスに連絡しています。マクロ自体は正しく動くのに、配り方のせいで毎月止まるわけです。
同じ根っこから出る症状は他にもあります。配られたファイルが読み取り専用で開く話は保護されたビューで編集できないときの原因の切り分けに、ブック間の参照が毎回確認を求めてくる話は外部リンクの更新を毎回求められるときのリンク元の探し方に、設定した本人がいなくなって詰まる話はシート保護のパスワードを忘れたときの対処にまとめています。
対処の本筋は、マクロで実現していた処理を、配らなくていい場所に移すことです。マクロが特定の人しか直せない状態になっているなら、エクセルマクロの属人化をアプリ化で解消する進め方と、エクセル管理をやめるときの移行手順が判断材料になります。処理そのものをサーバー側に移す場合の費用感はGAS 開発を外注するときの費用の目安が参考になります。
Mihata では、既存のマクロと様式をいきなり捨てるのではなく、配布と入力の部分だけを先に移す進め方をとっています。処理ロジックを作り直すより安く、止まる回数が目に見えて減るためです。
ファイル自体が開かない、壊れているように見える場合は別の問題です。ダイアログの文言ごとの切り分けはエクセルファイルが破損して開けないときの復旧手順を参照してください。
よくある質問
赤いバーに「コンテンツの有効化」ボタンが出ません。どこにありますか?
そのバーにはボタンがありません。Microsoft は、インターネット由来のファイルで表示されるセキュリティ リスク バナーには「コンテンツを有効にする」オプションがないと明記しています。直すには、ファイルを右クリック →[プロパティ]→[全般]タブの「ブロック解除」にチェックを入れるか、そのファイルを信頼できる場所に保存してください。
トラスト センターで「すべてのマクロを有効にする」にしたのに直りません。
既定動作の変更後は、トラスト センターの設定より手前でブロック判定が走るため、この設定を変えても赤いバーが消えないことがあります。安全性だけ下がって症状が残る最悪の組み合わせになるので、元に戻し(既定は「通知を使用してすべてのマクロを無効にする」)、ファイル単位のブロック解除か信頼できる場所で対処してください。
同じファイルで、自分はブロックされるのに同僚は普通に動きます。なぜですか?
Mark of the Web が付くかどうかは受け取り方で決まるためです。メール添付やブラウザーのダウンロードでは付きますが、OneDrive・SharePoint・Teams から「デスクトップ アプリで開く」で開いた場合や、OneDrive 同期クライアントが落としたファイルには付きません。また Mac 版 Office と Office on the web はこの変更の対象外です。
zip に入れて渡したら動きました。これで解決ですか?
安全になったのではなく、検査が外れただけです。解凍時に Mark of the Web を引き継ぐかどうかは解凍ソフトの仕様で、エクスプローラーの「すべて展開」は引き継ぐ一方、7-Zip は引き継ぎ設定が既定でオフと報告されています。裏ワザとして社内で共有され始めたら、解凍方法を統一するか配布自体をやめる手当てが必要です。
信頼できる場所に入れるのは安全ですか?
便利ですが、保護を外す設定です。Microsoft のドキュメントでは、信頼できる場所のファイルはファイル ブロック設定や検証をバイパスし、署名のないアドインや VBA マクロ、外部データ接続が警告なしに有効になるとされています。専用の小さなフォルダーを 1 つだけ作り、書き込める人を絞ってから信頼してください。ルート フォルダーの指定とネットワーク上の場所は推奨されていません。
どうやってもブロック解除できません。
組織のポリシーで固定されている可能性が高く、利用者側では外せません。管理者へは「インターネットからの Office ファイルでのマクロの実行をブロックする」または「VBA マクロ通知設定」というポリシー名と、対象フォルダーのパスを添えて依頼してください。なおこれらのポリシーは Microsoft 365 Apps for enterprise のみで使え、for business では使えないため、プランから切り分けることもできます。