近年サイバー攻撃(「Emotet」という主にメールを媒介にしたマルウェア)が急速に増えてきたことを踏まえて、Microsoftはマクロを利用した攻撃に対する対策を強化しました。その結果、インターネットから取得したマクロ付きのエクセルファイルを開くと、マクロはブロックされ(実行されずに)以下の赤色のメッセージバーが表示されるようになりました。
このメッセージが表示されるになった原因は、2022年9月から提供されだしているMicrosoft Officeのアップデートです。具体的にはOfficeバージョン2203以降、信頼できない環境下のOfficeファイルについてはマクロを実行できないよう修正されています。この強化された仕組みでマクロをブロックされるのはWindows版のMicrosoft Office(Excel、Word、PowerPoint、Access、Visio)です。但し、ブロックされるのはすべてのマクロ付きエクセルが対象というわけではありません。インターネット経由で入手したOfficeです。
この記事では、マクロのブロックを解除する方法と、もとよりマクロをブロックされないようにする方法をご紹介します。
現象・原因
マクロの実行がブロックされる現象
インターネットからダウンロードしたzipフォルダを解凍して、該当ファイルを起動すると警告バーが表示される。
「セキュリティリスク このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされた 詳細表示」
この警告メッセージが表示されている場合は、マクロは動作しません。「詳細を表示」をクリックしても動きません。一度、ブックを閉じて、次に紹介する対処を行った後、再度開き直すことが必要です。
マクロの実行がブロックされる原因
Microsoft社がセキュリティ強化の為、2022年9月のWindowsUpdate(Excelバージョン2203以降)からインターネットから取得したExcel等のマクロ(VBAマクロ有効ブック)がデフォルトでブロックする仕様へ変更されました。
マクロのブロックを解除する方法
WindowsはインターネットからExcelマクロブック(*.xlsm)をダウンロードした際にファイルに特殊なマーク(Mark of the Web:”MOTW”とも言う)を付加した状態でダウンロードします。このマークで「インターネットからダウンロードしたファイルなので開くと危険」という事を示しています。そしてExcelでブックを開くと、Windowsがこのマークがある為に「危険」と判断してマクロがブロックされるのです。動作環境がWindowsでなく、他のOS、例えばMac等の場合は”MOTW”が付与されないためマクロはブロックされません。
そこで対処方法は、大きくわけて次の2つの方法があります。
一つは、マクロのブロックを解除する方法として、ファイルに付加されているマーク(“MOTW”)を削除する方法で、もう一つは、もとよりブロックされないようにする方法として「信頼できる場所(マークが効かない場所)」に移動させる方法でブロックを回避させることができます。
マーク(“MOTW”)を削除する。
マーク(“MOTW”)を削除する方法は2つあります。「ファイルのプロパティを変更する方法」と「Powershellを使って変更する方法」です。前者が最もお薦めの方法です。
ファイルのプロパティを変更する方法
ダウンロードしたファイルを右クリックしてプロパティを開き、「全般」タブの一番下の「許可する」にチェックを付けて、「OK」を押下します。
注意:
一度チェックを付けたあとは、「セキュリティ」の項目はなくなりますので、ブロックされることはありません。
Powershellを使って変更する方法
ダウンロードしたファイルが多い場合は、ファイルごとにプロパティを変更するのは面倒です。こんな場合は、PowerShellを使ってマークを削除する方が楽です。
一度、PowerShellのファイルとbatファイルを用意すれば、あとはbatファイルにブックをドラッグするだけです。
「@vbabeginner」さんのブログ(Excel作業をVBAで効率化)を参照させて頂きました。
こちらは、記載内容通りに行えば大丈夫ですが、少し知識がある方が安心です。
unblock.ps1を作成する。
次のコードをテキストエディターで書いて、新規ファイル(unblock.ps1)を作成します。
unblock.batを作成する。
次のコードをテキストエディターで書いて、新規ファイル(unblock.bat)を作成します。
フォルダに配置する。
ダウンロードしたブックのあるフォルダに、unblock.ps1とunblock.batを置きます。※ここでは、「テストB」というフォルダに格納します。
unblock.batにドラッグする。
ダウンロードしたブックをunblock.batにドラッグすれば解除されます。
※解除済みのブックをドラッグしても問題ありません。何もかわらないだけです。
「セキュリティ」の項目が消えています。これでマークが削除されました。
対処方法の注意点
「プロパティを変更する方法」で対処する場合は、解凍前のzipフォルダ内のExcelマクロブックでは、圧縮されているため、「セキュリティ」項目は表示されません。解凍後のフォルダ内のExcelマクロブックを扱うようにして下さい。
マクロの実行をブロックされないようにする方法
「信頼できる場所(マークが効かない場所)」に移動させる
エクセルの設定で「信頼できる場所」を設定して、ブックを移動させることでマクロはブロックされなくなります。「信頼できる場所」にあたるフォルダ等にあるExcelブックは”安全ですよ”と設定するのです。
例えば、「ダウンロード」フォルダに「テスト」というフォルダを追加して、このフォルダを「信頼できる場所」とします。C:\User\owner\download\テストとパスを設定しておくと、「テスト」フォルダに移動させたブックは、安全とみなされ”MOTW”が付いていても無視するため、マクロは実行可能となります。但し、別の場所に移すとブロックされてしまいます。
フォルダの追加
予め、「信頼できる場所」として、「テスト」というフォルダを作成します。
ファイル→オプションをクリック
Excelシートを開いて、ファイルメニューからオプションを選択します。
「トラストセンターの設定」をクリック
「トラストセンター」を選択して、「トラストセンターの設定」をクリックします。
「信頼できる場所」の設定
「新しい場所の追加」をクリック
「信頼できる場所」を選択して、「新しい場所の追加」をクリックします。
フォルダの選択
「参照」を選択して、ダウンロードフォルダに追加した「テスト」フォルダを選択します。
パスの追加表示
「テスト」フォルダへのパスが追加されましたので、「OK」を押下します。
Excelマクロブックの移動
ブロックされたExcelマクロブックを「信頼できる場所」である「テスト」フォルダに移動させます。
ブロック解除の確認
ブロックが解除されました。
対処方法の注意点
「”信頼できる場所”に移動させる方法」で対処する場合は”信頼できる場所”である「テスト」フォルダの中にあるブックのマクロは実行できますが、マーク(“MOTW”)は付与され残ったままの為、「テスト」フォルダから別のフォルダへ移動やコピーすると、再度マクロは、ブロックされて実行ができなくなります。
[ 別の場所へ移動させた例 ]
「テスト」フォルダからデスクトップへ移動させて、Excelマクロブックを起動すると警告メッセージが表示され、ブロックされます。