PR

【Windows】「マクロの実行がブロックされました。」の対処方法

近年サイバー攻撃(「Emotet」という主にメールを媒介にしたマルウェア)が急速に増えてきたことを踏まえて、Microsoftはマクロを利用した攻撃に対する対策を強化しました。その結果、インターネットから取得したマクロ付きのエクセルファイルを開くと、マクロはブロックされ(実行されずに)以下の赤色のメッセージバーが表示されるようになりました。

セキュリティリスクの警告バー

このメッセージが表示されるになった原因は、2022年9月から提供されだしているMicrosoft Officeのアップデートです。具体的にはOfficeバージョン2203以降、信頼できない環境下のOfficeファイルについてはマクロを実行できないよう修正されています。この強化された仕組みでマクロをブロックされるのはWindows版のMicrosoft Office(Excel、Word、PowerPoint、Access、Visio)です。但し、ブロックされるのはすべてのマクロ付きエクセルが対象というわけではありません。インターネット経由で入手したOfficeです。
この記事では、マクロのブロックを解除する方法と、もとよりマクロをブロックされないようにする方法をご紹介します。

スポンサーリンク

現象・原因

現象

インターネットからダウンロードしたzipフォルダを解凍して、該当ファイルを起動すると警告バーが表示される。
「セキュリティリスク このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされた 詳細表示」

セキュリティリストの警告バー(excelブック)

この警告メッセージが表示されている場合は、マクロは動作しません。「詳細を表示」をクリックしても動きません。一度、ブックを閉じて、次に紹介する対処を行った後、再度開き直すことが必要です。

原因

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」を押下します。

ブロパティの選択(excelブック)
セキュリティチェック(excelプロパティ)

注意:
一度チェックを付けたあとは、「セキュリティ」の項目はなくなりますので、ブロックされることはありません。

セキュリティ項目のないプロパティ(excelブック)

Powershellを使って変更する方法

ダウンロードしたファイルが多い場合は、ファイルごとにプロパティを変更するのは面倒です。こんな場合は、PowerShellを使ってマークを削除する方が楽です。
一度、PowerShellのファイルとbatファイルを用意すれば、あとはbatファイルにブックをドラッグするだけです。
「@vbabeginner」さんのブログ(Excel作業をVBAで効率化)を参照させて頂きました。

こちらは、記載内容通りに行えば大丈夫ですが、少し知識がある方が安心です。

unblock.ps1を作成する。

次のコードをテキストエディターで書いて、新規ファイル(unblock.ps1)を作成します。

unblock.ps1の作成(powershell)
unblock.batを作成する。

次のコードをテキストエディターで書いて、新規ファイル(unblock.bat)を作成します。

unblock.batの作成(batファイル)
フォルダに配置する。

ダウンロードしたブックのあるフォルダに、unblock.ps1とunblock.batを置きます。※ここでは、「テストB」というフォルダに格納します。

フォルダの中身
unblock.batにドラッグする。

ダウンロードしたブックをunblock.batにドラッグすれば解除されます。
※解除済みのブックをドラッグしても問題ありません。何もかわらないだけです。

excelブックのドラッグ

「セキュリティ」の項目が消えています。これでマークが削除されました。

セキュリティ項目の消えたexcelプロパティ
[ 処理の説明 ]「@vbabeginner」さんのブログ(Excel作業をVBAで効率化)より

unblock.ps1とunblock.batが何をやっているかというと、ダウンロード時に付けられるマーク(“MOTW”)はPowershellの「Unblock-File」というコマンドに対象のブックを引数で渡すことで削除できるようになっています。
ただし、Powershellのps1ファイルにはドラッグしても処理を行えないため、batファイルを用意してそちらにブックをドラッグして、batファイルからps1ファイルにドラッグされたブックを渡すようにしています。

対処方法の注意点

「プロパティを変更する方法」で対処する場合は、解凍前のzipフォルダ内のExcelマクロブックでは、圧縮されているため、「セキュリティ」項目は表示されません。解凍後のフォルダ内のExcelマクロブックを扱うようにして下さい。

解凍前のzipフォルダ内のexcelプロパティ

対処方法(もとよりブロックされないようにする)

「信頼できる場所(マークが効かない場所)」に移動させる

エクセルの設定で「信頼できる場所」を設定して、ブックを移動させることでマクロはブロックされなくなります。「信頼できる場所」にあたるフォルダ等にあるExcelブックは”安全ですよ”と設定するのです。
例えば、「ダウンロード」フォルダに「テスト」というフォルダを追加して、このフォルダを「信頼できる場所」とします。C:\User\owner\download\テストとパスを設定しておくと、「テスト」フォルダに移動させたブックは、安全とみなされ”MOTW”が付いていても無視するため、マクロは実行可能となります。但し、別の場所に移すとブロックされてしまいます。

フォルダの追加

予め、「信頼できる場所」として、「テスト」というフォルダを作成します。

フォルダの追加

ファイル→オプションをクリック

Excelシートを開いて、ファイルメニューからオプションを選択します。

ファイル→オプションをクリック

「トラストセンターの設定」をクリック

「トラストセンター」を選択して、「トラストセンターの設定」をクリックします。

「トラストセンターの設定」(excelオプション)

「信頼できる場所」の設定

「新しい場所の追加」をクリック

「信頼できる場所」を選択して、「新しい場所の追加」をクリックします。

「新しい場所の追加」(excelトラストセンター)
フォルダの選択

「参照」を選択して、ダウンロードフォルダに追加した「テスト」フォルダを選択します。

フォルダの選択(excelトラストセンター)
パスの追加表示

「テスト」フォルダへのパスが追加されましたので、「OK」を押下します。

パスの追加(excelトラストセンター)

Excelマクロブックの移動

ブロックされたExcelマクロブックを「信頼できる場所」である「テスト」フォルダに移動させます。

Excelマクロブックの移動

ブロック解除の確認

ブロックが解除されました。

ブロック解除の確認(excelシート)

対処方法の注意点

「”信頼できる場所”に移動させる方法」で対処する場合は”信頼できる場所”である「テスト」フォルダの中にあるブックのマクロは実行できますが、マーク(“MOTW”)は付与され残ったままの為、「テスト」フォルダから別のフォルダへ移動やコピーすると、再度マクロは、ブロックされて実行ができなくなります。

[ 別の場所へ移動させた例 ]

Excelマクロブックの移動

「テスト」フォルダからデスクトップへ移動させて、Excelマクロブックを起動すると警告メッセージが表示され、ブロックされます。

セキュリティリストの警告バー(excelブック)