目次

はじめに:Excelファイルを開くたびに警告が出る理由

業務でExcelマクロ(VBA)が組み込まれたマクロ有効ブック(拡張子 .xlsm や .xlsb など)を開く際、画面上部に黄色や赤色のメッセージバーが表示され、毎回ボタンを押さないとマクロが実行できない状態に悩まされている方は少なくありません。自動化ツールとして作成したはずのファイルが、開くたびに手動での操作を要求してくるのは非常に煩わしいものです。

この警告メッセージは、決してExcelの不具合やエラーではありません。Microsoftがユーザーのパソコンを悪意のあるプログラム(マルウェアやランサムウェアなど)から守るために意図的に実装しているセキュリティ機能の正常な動作です。過去、メールの添付ファイルとして送られてきた不正なマクロ付きExcelファイルを開いてしまったことで、企業ネットワーク全体がウイルスに感染する被害(Emotetなどが代表例)が甚大化したため、Excelの初期設定では「未知のマクロは無条件に実行せず、必ずユーザーに確認を求める(あるいは強制的にブロックする)」ように厳格化されています。

本記事では、Excelファイルを開いた際に表示される警告の種類と原因を正確に整理し、業務の効率化を妨げないよう、安全性を確保したまま警告を非表示にし、マクロを自動で有効化するための具体的な設定方法を網羅的に解説します。

表示される「警告」の主な種類とそれぞれの原因

一口に「警告」と言っても、表示されるバーの色やメッセージ内容によって原因と対処法が異なります。まずはご自身の画面に出ている警告がどれに該当するかを確認してください。

黄色い情報バー:「セキュリティの警告 マクロが無効にされました」

最も一般的な警告です。黄色いバーの右側に「コンテンツの有効化」というボタンが表示されます。
【原因】 ファイル自体はパソコン上に存在し、開くこと自体に問題はありませんが、Excelの「トラストセンター(セキュリティ設定)」において、「警告を表示してすべてのマクロを無効にする」という標準設定が適用されているためです。Excelは「このファイルにはマクロが含まれていますが、実行しても安全ですか?」とユーザーに最終判断を委ねています。

赤い情報バー:「セキュリティ リスク Microsoft によりマクロの実行がブロックされました」

赤いバーが表示され、「コンテンツの有効化」ボタンが存在せず、マクロの実行が完全に遮断されている状態です。
【原因】 このファイルがインターネット(メールの添付、Webサイトからのダウンロード、クラウドストレージからの同期など)から取得されたものであり、Windows OSによって「Mark of the Web (MOTW)」というインターネット由来を示す見えないタグ(属性)が付与されているためです。2022年以降のMicrosoftのセキュリティ強化により、この属性を持つファイルのマクロは強制ブロックされます。

保護ビュー:「注意 – インターネットから入手したファイルは…」

黄色、あるいは赤色のバーで「保護ビュー」と表示され、「編集を有効にする」というボタンが表示されるケースです。
【原因】 マクロの有無に関わらず、インターネットから取得したファイル、または安全でない可能性のある場所(Outlookの添付ファイル用の一時フォルダなど)から開かれたファイルに対する制限です。この状態ではマクロはおろか、セルの編集すらできません。「編集を有効にする」を押した後に、前述のマクロ警告が二段階で表示されることがよくあります。

Excelのセキュリティ機構「トラストセンター」の仕組み

警告を非表示にする方法を理解するためには、Excelのセキュリティを統括する「トラスト センター」の仕組みを知る必要があります。マクロの動作方針はここで決定されています。

マクロ設定の4つの選択肢とその意味

Excelの「ファイル」タブ > 「オプション」 > 「トラスト センター」 > 「トラスト センターの設定」 > 「マクロの設定」を開くと、以下の4つの選択肢が存在します。

  • 警告を表示せずにすべてのマクロを無効にする: マクロは一切実行されず、警告バーも出ません。マクロが含まれていることすらユーザーに知らせません。最も厳しい設定です。
  • 警告を表示してすべてのマクロを無効にする(デフォルト): 初期設定です。マクロは一旦停止され、黄色いバーで「コンテンツの有効化」を求められます。
  • デジタル署名されたマクロを除き、すべてのマクロを無効にする: 信頼された発行元によるデジタル署名が付与されているマクロのみ自動実行し、それ以外は無効にします(警告が出ます)。
  • すべてのマクロを有効にする(危険なコードが実行される可能性があります): 警告を一切表示せず、すべてのマクロを無条件で実行します。マルウェア感染のリスクが極めて高いため、Microsoftも非推奨としています。

警告を出さずに安全にマクロを動かすためには、「すべてのマクロを有効にする」を選ぶのではなく、「ファイル単位」または「フォルダ単位」でExcelに「ここは安全だ」と認識させる(例外規定を作る)ことが正しいアプローチとなります。

警告を完全に非表示にする方法1:「信頼できる場所」への登録(最も推奨)

毎回警告を出さずにマクロを自動実行させるための最も安全で確実な方法は、マクロ有効ブックを保存している特定のフォルダをExcelの「信頼できる場所(Trusted Locations)」に登録することです。ここに登録されたフォルダ内のファイルは、開いた瞬間にセキュリティチェック(マクロの無効化や保護ビュー)をバイパスして、即座にマクロが利用可能になります。

ローカルPC内のフォルダを登録する手順

ご自身のパソコンのCドライブやDドライブにあるフォルダを登録する手順です。

  • Excelを起動し、「ファイル」タブから「オプション」を開きます。
  • 左側メニューの「トラスト センター」を選び、「トラスト センターの設定」ボタンをクリックします。
  • 左側メニューから「信頼できる場所」を選択します。
  • 画面右下の「新しい場所の追加(A)…」ボタンをクリックします。
  • 「Microsoft Office の信頼できる場所」というウィンドウが開くので、「参照(B)…」ボタンを押し、マクロファイルが保存されているフォルダ(例:C:\Users\Username\Documents\MacroTools)を選択します。
  • 対象フォルダの中にさらにサブフォルダがあり、そこにもマクロファイルを入れる予定がある場合は、「この場所のサブフォルダーも信頼する(S)」のチェックボックスにチェックを入れます。
  • 「OK」をクリックして、開いている設定ウィンドウをすべて閉じます。

ネットワーク上の共有フォルダを登録する手順と注意点

ファイルサーバーやNASなど、社内のネットワークドライブ上のフォルダを登録する場合は、事前に一つチェックを入れる必要があります。

  • 「トラスト センター」>「信頼できる場所」の画面下部にある「自分のネットワーク上にある信頼できる場所を許可する (推奨しません)」にチェックを入れます。このチェックがないと、ネットワークパスを追加できません。(「推奨しません」と書かれていますが、企業内LANでの運用においては事実上必須のチェックです)。
  • 「新しい場所の追加」ボタンをクリックし、「参照」からネットワークドライブ(例:Zドライブ)や、UNCパス(例:\\ServerName\SharedFolder)を指定して追加します。

警告を完全に非表示にする方法2:「信頼できるドキュメント」機能の利用

フォルダ単位ではなく、ファイル単位で警告を出さなくする機能が「信頼できるドキュメント」です。

「コンテンツの有効化」ボタンの仕組み

黄色い警告バーが出た際、「コンテンツの有効化」ボタンを一度クリックすると、次回以降、そのファイルを開いた際には警告が表示されなくなります。これは、Excelがそのファイルのパスや作成日時などの情報をWindowsのレジストリに記録し、「このファイルはユーザーが安全だと承認した『信頼できるドキュメント』である」と記憶する仕組みになっているからです。

ただし、この方法には欠点があります。ファイル名を変更したり、別のフォルダに移動したり、ファイルをメールで他人に送ったりした場合は、その記録が無効となり、再び警告バーが表示されるようになります。そのため、場所が固定されているファイルに対してのみ有効な手段です。

信頼できるドキュメントのリストをクリア(リセット)する方法

誤って危険なファイルのコンテンツを有効化してしまった場合や、設定を初期化したい場合は、記憶されたリストをクリアすることができます。

  • 「ファイル」>「オプション」>「トラスト センター」>「トラスト センターの設定」を開きます。
  • 左側のメニューから「信頼できるドキュメント」を選択します。
  • 右側の画面にある「クリア(C)」ボタンをクリックします。「以前に信頼したすべてのドキュメントをクリアしますか?」と聞かれるので「はい」を選択します。
  • これにより、これまで「コンテンツの有効化」を押したすべてのファイルの設定がリセットされ、次回開いた際に再び黄色い警告バーが出るようになります。

警告を完全に非表示にする方法3:デジタル署名の付与と「信頼できる発行元」

ファイルの保存場所に依存せず、誰にメールで送っても警告を出さずにマクロを実行させたい場合(※社内限定)、マクロのプロジェクト自体に「デジタル署名(電子証明書)」を付与するという高度な方法があります。

自己署名証明書(SelfCert.exe)の作成とマクロへの付与手順

商用の証明書を購入しなくても、Officeには社内テスト用に自分専用の証明書(自己署名証明書)を作成するツールが同梱されています。

  • Windowsのエクスプローラーを開き、以下のパスにアクセスします(環境によって異なります)。
    C:\Program Files\Microsoft Office\root\Office16
  • フォルダ内にある SELFCERT.EXE (VBA プロジェクトのデジタル証明書)をダブルクリックして起動します。
  • 「証明書の名前」欄に任意の名前(例:MyCompanyMacro)を入力し、「OK」を押します。これで証明書が作成されました。
  • マクロを組み込んだExcelファイルを開き、Alt + F11 キーを押してVBE(Visual Basic Editor)を開きます。
  • VBEのメニューから「ツール」>「デジタル署名」を選択します。
  • 「選択」ボタンをクリックし、先ほど作成した証明書を選んで「OK」を押し、Excelファイルを上書き保存します。

これでファイルに署名が付与されました。このファイルを別のPCで最初に開いた際、「この発行元からのドキュメントをすべて信頼する」を選択すると、そのPCの「信頼できる発行元」リストに証明書が登録され、以降はその署名が施されたすべてのマクロファイルが警告なしで実行できるようになります。

警告を完全に非表示にする方法4:ネットワーク環境における「ローカル イントラネット」設定

社内のファイルサーバー上のファイルを「信頼できる場所」に追加したにもかかわらず、赤い警告バー(MOTWブロック)や保護ビューが解除されないケースがあります。これは、Windowsがそのファイルサーバーを「社外のインターネット」として誤認していることが原因です。

特に、ファイルサーバーへのショートカットやリンクを \\192.168.1.50\Share のように「IPアドレス」で指定している場合や、\\server.domain.com のように「FQDN(完全修飾ドメイン名)」で指定している場合、Windowsはこれをインターネットゾーンと判定します。

これを解決し、警告を確実に出さなくするには、以下の設定が必要です。

  • Windowsのスタートメニューを開き、「インターネット オプション」と検索して起動します。
  • 「セキュリティ」タブを選択し、「ローカル イントラネット」のアイコンをクリックして「サイト」ボタンを押します。
  • 「詳細設定」ボタンをクリックします。
  • 「この Web サイトをゾーンに追加する」の入力欄に、ファイルサーバーのIPアドレスやサーバー名を file://192.168.1.50 の形式で入力し、「追加」を押します。
  • 「閉じる」→「OK」を押して画面を閉じます。

これにより、指定したサーバーからのファイルは「社内の安全なファイル」として認識され、不当なセキュリティブロックや警告が非表示になります。

警告を非表示にする方法5:「すべてのマクロを有効にする」設定(※非推奨・危険)

設定の手間を省くために、トラストセンターの「マクロの設定」で「すべてのマクロを有効にする」を選択すれば、確かに今後一切の警告バーは表示されず、どんなファイルのマクロも即座に実行されるようになります。
しかし、この設定はセキュリティ上、絶対に推奨されません。

万が一、悪意のあるマクロが仕込まれたファイルを誤って開いてしまった場合、ユーザーが気づく間もなくバックグラウンドでマクロが実行され、データの破壊、機密情報の流出、ランサムウェアによるファイル暗号化などの致命的な被害を引き起こします。警告を出さない目的でシステム全体のセキュリティレベルを底辺に下げる行為は避けてください。

【管理者向け】PowerShellを用いた信頼できる場所の一括登録(レジストリ編集)

情報システム部門の管理者が、社内の数十台、数百台のPCに対して「特定の社内サーバーパスを信頼できる場所に設定したい」という場合、ユーザーに手動設定させるのは困難です。Active Directoryのグループポリシー(GPO)を使用するのが定石ですが、GPOがない環境向けに、PowerShellを使ってレジストリに「信頼できる場所」を直接書き込むスクリプトを紹介します。

以下のコードは、Excel 2016以降(Microsoft 365含む)の環境において、\\MyServer\SharedMacro というネットワークパスを「信頼できる場所(Location99)」として追加し、ネットワークパスの許可も有効にするスクリプトです。

# ネットワーク上の信頼できる場所を許可する設定
$TrustManagerPath = "HKCU:\SOFTWARE\Microsoft\Office\16.0\Excel\Security\Trusted Locations"
if (-Not (Test-Path $TrustManagerPath)) {
    New-Item -Path $TrustManagerPath -Force | Out-Null
}
Set-ItemProperty -Path $TrustManagerPath -Name "AllowNetworkLocations" -Value 1 -Type DWord

# 追加したいネットワーク共有フォルダのパス
$TargetNetworkPath = "\\MyServer\SharedMacro"

# 信頼できる場所のキーを作成(Location99とする)
$LocationKey = "$TrustManagerPath\Location99"
if (-Not (Test-Path $LocationKey)) {
    New-Item -Path $LocationKey -Force | Out-Null
}

# パスとサブフォルダ許可の設定を書き込む
Set-ItemProperty -Path $LocationKey -Name "Path" -Value $TargetNetworkPath -Type String
Set-ItemProperty -Path $LocationKey -Name "AllowSubfolders" -Value 1 -Type DWord
Set-ItemProperty -Path $LocationKey -Name "Description" -Value "社内共有マクロ用フォルダ" -Type String

Write-Output "信頼できる場所の登録が完了しました。"

これをログインスクリプトとして配布することで、全社員のPCで一括して警告を非表示にする環境を構築できます。

まとめ:利便性とセキュリティを両立させる最適な運用方法

Excelファイルを開くたびに表示されるマクロやセキュリティの警告は、決して邪魔をするためのものではなく、ユーザーのパソコンと組織のデータを守るための重要な防波堤です。

警告を非表示にしてマクロを自動で有効化させたい場合は、安易に「すべてのマクロを有効にする」を選択するのではなく、「信頼できる場所」に専用のフォルダを登録し、マクロファイルは必ずそのフォルダ内で運用するというルールを設けるのがベストプラクティスです。ネットワークドライブを利用する場合は、「インターネットオプションのイントラネット設定」と「ネットワーク上の信頼できる場所の許可」の2点を忘れずに設定してください。

これらの正しい設定を行うことで、セキュリティのリスクを最小限に抑えつつ、警告バーの表示に煩わされることのない、快適で効率的なExcelマクロの運用環境を実現することができます。