インターネットから入手したOfficeドキュメントでVBAマクロが実行できないときの対処方法

インターネットから入手したOfficeドキュメントでVBAマクロが実行できないときの対処方法

Word、Excel、PowerPointといったMicrosoft Officeアプリには、定型的な作業を自動化することができるVBA(Visual Basic for Applications)マクロというプログラム機能が搭載されています。

VBAマクロを上手に活用すれば、数時間かかっていた作業を数分で終わらせるといった大幅な効率化も可能な便利機能である反面、悪意のあるVBAマクロを含むファイルでマルウェアに感染させるなどの悪用も後を絶ちません。

そこで、Windows向けのMicrosoft Officeでは、セキュリティ対策を強化するために、インターネットなどの信頼できない場所から入手したVBAマクロを含むOfficeファイルでは、VBAマクロの実行が既定でブロックされるようになりました。

ですが、業務などでVBAマクロを含むOfficeファイルを開くことがある場合は、実行がブロックされては困るケースもあるでしょう。

そこでここでは、インターネットなどの信頼できない場所から入手したVBAマクロを含むOfficeファイルで、VBAマクロが実行できないときに対処方法を紹介します。

Windows10でインターネットからダウンロードしたファイルが実行できないときは
Windows10で、インターネットからダウンロードしたファイルを実行しようとすると「保護されました」と警告画面が表示されて、明示的に実...

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows10 Pro 64bit21H2
Microsoft Excel for Microsoft 3652209

VBAマクロを含むOfficeファイルを開くと

Microsoft Officeでは、インターネットなどから入手したOffice形式ファイルを開くと「保護ビュー」と呼ばれる機能で、以下の画面のように黄色いメッセージバーが表示され、ユーザーが明示的に「編集を有効にする」ボタンをクリックしない限り、Officeファイルを自動的に読み取り専用にしてくれるセキュリティ機能が搭載されています。

インターネットから入手したOfficeドキュメントでVBAマクロが実行できないときの対処方法

さらに最近では、この機能が強化されてVBAマクロを含むOfficeファイルを開いた場合、赤色のメッセージバーも表示されるようになり、ボタンをクリックするだけではVBAマクロが実行できなくなっています。

インターネットから入手したOfficeドキュメントでVBAマクロが実行できないときの対処方法

VBAマクロのブロックを解除する

インターネットなどの信頼できない場所から入手したVBAマクロを含むOfficeファイルを開いて、VBAマクロを実行したい場合は、該当ファイルに付与されている「Mark of the Web(MOTW)」という属性を解除する必要があります。

MOTW属性は、信頼できない場所から入手したファイルにWindowsが自動的に付与する属性で、Officeアプリからではなく、ファイルのプロパティ画面などから解除します。

たとえば、インターネットなどから入手したVBAマクロを含むエクセルファイルの付与されたMOTW属性を解除するには、該当ファイルを右クリックして、メニューから「プロパティ」を選択します。

インターネットから入手したOfficeドキュメントでVBAマクロが実行できないときの対処方法

ファイルのプロパティ画面が表示されるので「全般」タブの下部にある「セキュリティ:このファイルは他のコンピューターから取得したものです。このコンピューターを保護するため、このファイルへのアクセスはブロックされる可能性があります。」の横にある「許可する」にチェックを入れて「OK」をクリックします。

インターネットから入手したOfficeドキュメントでVBAマクロが実行できないときの対処方法

以上で、該当ファイルのMOTW属性が解除され、ファイルを開いてセキュリティ警告のメッセージバーで「コンテンツの有効化」ボタンをクリックすれば、VBAマクロを実行できるようになります。

インターネットから入手したOfficeドキュメントでVBAマクロが実行できないときの対処方法

MOTW属性を一括解除したいときは

MOTW属性を解除したいOfficeファイルがたくさんある場合は、一つずつプロパティ画面を開いて解除するのは手間がかかります。

そのようなときは、PowerShellのUnblock-Fileコマンドレットを利用することで一括解除できます。

たとえば、E:¥Testフォルダー内にあるファイルのMOTW属性を一括で解除したいときは、PowerShellを起動して以下のようにコマンドを実行します。

PS> Get-ChildItem E:\Test\ | Unblock-File

コマンド実行後は、画面上には特に何も表示されませんが、プロンプトが返ってくればMOTW属性が一括解除されています。

インターネットから入手したOfficeドキュメントでVBAマクロが実行できないときの対処方法

あとがき

ちなみに、MOTW属性が付与されるのは、Windows環境でファイルシステムがNTFSの場合のみとなります。

記事が役立ったらシェアしてくれるとうれしいです。