Excelで署名済みマクロがブロックされるときは、署名が付いているだけでは足りません。VBAプロジェクトに正しく署名されていること、実行先PCでその証明書が信頼済み発行元になっていること、ファイルがインターネット由来として扱われていないことの3つを先に確認すると、かなり早く原因を絞れます。Microsoft 365 Apps は、信頼できる場所、信頼済み発行元、ポリシー、Mark of the Web(MOTW)などを組み合わせてマクロを判断するため、「署名済みなのに動かない」は珍しい例外ではありません。この記事では、Excelで署名済みマクロがブロックされる原因と対処を、利用者向けの復旧手順と管理者向けの設定確認に分けて整理します。
切り分けはこの表から始める
まずは、自分の症状がどの系統かを切り分けると遠回りを避けられます。次の表は、Microsoftのマクロ判定フロー、信頼済み発行元、OneDrive/SharePoint、Excelアドインの仕様をもとにした整理です。
| 症状 | 起きやすい原因 | 最初に見る場所 |
|---|---|---|
ダウンロードした .xlsm だけ動かない | MOTW が付いている | エクスプローラーのプロパティ |
| 署名済みなのに毎回警告が出る | 発行元が信頼済みではない | Trusted Publishers |
| 修正版だけ急に動かない | コード変更で署名が外れた | VBE の Digital Signature |
| SharePoint / Teams のダウンロード版だけ止まる | ブラウザー取得で MOTW が付与 | 開き方の運用 |
.xlam だけ無効になる | Excelアドインは MOTW 付きだと署名信頼だけでは通らない | MOTW 削除または信頼できる場所 |
| 会社PCだけ止まる | GPO / Intune のポリシー | 管理者設定 |
表のように、原因は署名そのものだけでなく、MOTW、保存場所、発行元信頼、組織ポリシーに分かれます。ここを切り分けずに「Excelの不具合」と決め打ちすると、設定をいじっても戻らないことが多いです。
Excelで署名済みマクロがブロックされる主な原因
署名しているのがブックで、VBAプロジェクトではない
見落としやすいのがここです。Excelにはブック内容へのデジタル署名とVBAプロジェクトへのコード署名があり、これは別物です。ブックを署名しても、VBAマクロが「署名済みマクロ」として扱われるとは限りません。署名済みマクロとして確認したいなら、Alt + F11 でVBEを開き、対象プロジェクトを選んで [Tools] > [Digital Signature] を確認します。ここに証明書が付いていなければ、Excelのマクロ判定では署名済みとは見なされません。
あわせて拡張子も確認してください。Excelでマクロを保持できる代表的な形式は .xlsm、.xltm、.xlam です。ここが合っていなければ、署名以前の問題です。
ファイルに Mark of the Web(MOTW)が付いている
メール添付やブラウザーからダウンロードしたファイルには、WindowsがMOTWを付けることがあります。Microsoft 365 Apps では、この属性が付いたファイルのマクロは既定で強く制限され、以前のようにトラストバーから簡単に有効化できないことがあります。Microsoftの案内でも、MOTWがあるファイルでは「セキュリティ リスク」バナーが表示され、必要ならファイルのプロパティからブロック解除する流れが案内されています。
送信元が確実に信頼できると分かっている場合は、Excelを閉じた状態で次の順に戻します。
- エクスプローラーで対象ファイルを右クリックする
- [プロパティ] > [全般] > [ブロック解除] をオンにする
- [OK] を押して、Excelで開き直す
複数ファイルをまとめて戻したい場合は、PowerShell の Unblock-File でも同じ処理ができます。
Unblock-File "C:\Work\sample.xlsm"
ただし、ネットワーク共有上のファイルでは「ブロック解除」が出ない、または効かないことがあります。共有がインターネット ゾーン扱いだと、この方法だけでは戻らないため、保存場所の扱いを見直す必要があります。
発行元が「信頼済み発行元」になっていない
Excelのマクロ設定で「署名済みのみ許可」にしていても、署名があるだけでは足りません。Microsoftのサポートでも、信頼済み発行元の証明書で署名されている場合に実行され、まだ信頼していない発行元なら通知されると説明されています。つまり、配布者が正しく署名していても、受け手のPC側にその証明書が信頼済みとして入っていなければ、署名済みマクロは止まります。
少人数で使うだけなら、MOTWを外したうえで、対象ファイルを開き、[ファイル] > [情報] > [セキュリティの警告] > [コンテンツの有効化] > [詳細オプション] から「この発行元のドキュメントをすべて信頼する」を選ぶ方法があります。Microsoftは、MOTW付きファイルで発行元を信頼したい場合、先にMOTWを外すよう案内しています。
ここで注意したいのは、1回発行元を信頼すると、その証明書で正しく署名されたすべてのコードが信頼対象になることです。毎回ユーザーに手動で登録させるより、組織で使うマクロなら、IT側でTrusted Publishersへ証明書を配布したほうが運用は安定します。
コード変更や証明書状態で署名が無効になっている
VBAコードは、署名後に変更すると署名が外れます。テスト版では動いたのに、修正版だけブロックされるなら、まず再署名漏れを疑ってください。保存直前の微修正でも条件は同じです。
証明書の有効期限や失効も確認対象です。Microsoftは、Officeが無効または期限切れの証明書で署名されたファイルを通知すると案内しています。VBA署名にはタイムスタンプを付けておくと、証明書が失効していない限り、期限切れ後も署名済みとして扱われやすく、更新時の混乱を減らせます。
SelfCert の証明書を本番配布に使っている
SelfCert.exe で作った自己署名証明書は、Microsoft自身が自分のPCや少数の管理された端末向けと説明しています。社内全体や取引先配布にこれを使うと、配布先で信頼されず、署名済みなのにブロックされる原因になります。検証用と本番配布用は分けるのが安全です。
保存場所と開き方が原因になっている
OneDriveやSharePoint上のファイルは、「そこに置いてあるから安全」ではありません。Microsoftの案内では、ブラウザーでダウンロードしたファイルにはMOTWが付くことがある一方、SharePoint / OneDrive の [デスクトップ アプリで開く] や OneDrive同期クライアント経由で取得したファイルにはMOTWが付かないとされています。社内で繰り返し使う .xlsm は、毎回ブラウザーから落とす運用をやめるだけで安定することがあります。
共有フォルダーやNASでは、場所だけでなくゾーン判定も効きます。IPアドレス直打ちの共有、未整理のUNCパス、信頼済みサイトやローカル イントラネットに属していない場所は、インターネット扱いになってマクロがブロックされることがあります。さらに、ネットワーク上の信頼できる場所は既定で無効のため、ユーザーが追加してもポリシー次第では無視されます。
.xlam / .xla のアドインはさらに厳しい
通常の .xlsm と同じ感覚でハマりやすいのがExcelアドインです。Microsoftは、MOTW が付いた .xlam / .xla では、デジタル署名で発行元を信頼しても動作しないと案内しています。Excelアドインで通すには、MOTWを外すか、信頼できる場所に置くことが基本です。署名だけで解決しようとして止まる典型例です。
更新や権限の影響で急にブロックされるケース
Office更新後に急に止まったように見えるときは、単純な不具合より、Microsoft 365 Apps 側でインターネット由来マクロの既定ブロックが強く効くようになった可能性を先に疑うと切り分けが速くなります。特に会社PCだけで起きるなら、ExcelのUI設定より、GPOやIntune、セキュリティベースラインを見たほうが近道です。
管理者に確認したい項目は、次の4つです。
- Block macros from running in Office files from the Internet が有効になっていないか
- VBA Macro Notification Settings が「署名済み以外を無効」に寄っていないか
- Block certificates from trusted publishers that are only installed in the current user certificate store が有効で、ユーザーの手動信頼が無効化されていないか
- Allow Trusted Locations on the network や Only trust VBA macros that use V3 signatures が原因になっていないか
特に、ユーザーが手動で発行元を信頼したのに効かない場合は、current user 側の証明書ストアがポリシーで無視されている可能性があります。こうなると、利用者権限だけでは直せず、IT側での証明書配布が必要です。
最短で復旧する手順
利用者がやること
- 拡張子と署名場所を確認する
.xlsm/.xltm/.xlamかを確認し、VBE の [Tools] > [Digital Signature] に証明書が付いているか見ます。ブック署名だけでは足りません。 - 取得経路を確認する
メール添付、ブラウザー保存、TeamsやSharePointの「ダウンロード」経由なら、まずMOTWを疑います。送信元が信頼できるなら、ファイルのプロパティで [ブロック解除] を確認します。 - 発行元を信頼する
社内の定常マクロなら、MOTWを外したうえで発行元を信頼するか、ITにTrusted Publishers配布を依頼します。何度も同じ警告を消すより、このほうが再発しにくいです。 - 修正後は必ず再署名する
コードを直した直後に止まったなら、ほぼここです。配布前の最終保存後に再署名したかまで確認します。 - 保存経路を変える
SharePointやOneDriveで配るなら、ブラウザーから毎回ダウンロードする運用をやめ、[デスクトップ アプリで開く] か同期フォルダー経由に寄せます。 .xlamなら別ルートで考える
アドインは署名だけでは通らないことがあります。MOTW削除か、制御された信頼できる場所への配置を優先します。
管理者がやること
- 証明書をTrusted Publishersへ配布する
ユーザー手動登録に頼るより安定します。current user 側がブロックされるポリシーにも対応しやすくなります。 - ポリシーの優先関係を確認する
会社PCだけで止まるなら、Trust Centerではなく GPO / Intune 側が効いている前提で見ます。特にインターネット由来マクロのブロックと VBA 通知設定を確認します。 - 信頼できる場所を使うなら、書き込み権限を絞る
Trusted Locations は Trust Center のチェックを通さず実行されるため、広く書き込める共有を入れる設計は避けます。必要なら専用フォルダーを分けます。 - 古い署名方式が原因なら再署名を検討する
セキュリティ強化後に旧ファイルだけ止まるなら、V3署名のみ信頼の影響を見て、必要なら再署名します。
やってはいけない対処
- 「すべてのマクロを有効にする」を恒久運用にする
Microsoftはこの設定を推奨していません。悪意あるコードまで実行対象になります。検証環境で一時的に切り分ける用途に留めるべきです。 - 「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」をオンにして解決しようとする
これは開発者向けの別設定で、署名済みマクロの通常実行可否を決める項目ではありません。ここを触っても、MOTWや信頼済み発行元の問題は解決しません。 - 誰でも書き込める共有フォルダーを信頼できる場所にする
信頼できる場所はTrust Centerのチェック対象外になるため、書き込み権限が広い共有をそのまま登録すると、別の安全性リスクを作ります。 - SelfCert の証明書をそのまま全社配布に使う
自己署名証明書は検証向けです。本番配布では、受け手で信頼されず、今回のようなブロックを再発させやすくなります。
ITに依頼するときに伝えると早い項目
社内の管理者に相談するときは、次の情報を最初から渡すと話が早くなります。ポリシー名まで書いておくと、利用者設定の問題か、管理設定の問題かを切り分けやすくなります。
- 対象ファイルの拡張子(
.xlsm/.xlamなど) - 取得方法(メール添付、ブラウザー保存、SharePointのダウンロード、OneDrive同期)
- ファイルのプロパティに [ブロック解除] があるか
- VBE の [Tools] > [Digital Signature] に証明書が出るか
- 個人PCでは動くか、会社PCだけで止まるか
- 確認してほしいポリシー名
Block macros from running in Office files from the InternetVBA Macro Notification SettingsBlock certificates from trusted publishers that are only installed in the current user certificate storeAllow Trusted Locations on the networkOnly trust VBA macros that use V3 signatures
まとめ
Excelで署名済みマクロがブロックされるときの確認順は、①VBAプロジェクトに署名されているか、②MOTWが付いていないか、③発行元が信頼済みか、④保存場所と開き方に問題がないか、⑤組織ポリシーで止められていないかです。個人でまず直したいなら、ファイルのブロック解除と発行元信頼の確認が早道です。組織で再発を防ぎたいなら、証明書配布、保存経路の見直し、ポリシー確認まで含めて運用を整えるのが確実です。

コメント