インターネットから取得した、安全だと判明しているExcelのマクロファイルを開いたときに、マクロ(決められた処理を必要に応じて簡単に呼び出せるようにする機能)の実行がブロックされた。
そのマクロのブロックを解除できずに途方に暮れたことはないでしょうか。
この記事ではマクロのブロックを解除する方法と、そもそもマクロをブロックされないようにする方法を紹介します。
結論から言うと、
ブロックを解除する方法は、ブロックされたマクロファイルのプロパティより「ブロックを解除」することでマクロを実行できるようになります。
そして、そもそもブロックさせない方法としては、マクロの取得元パスを「信頼できる場所」に設定することでマクロのブロックを回避することができます。
なお、本記事はOfficeソフトのExcelを中心に解説していきますが、他Officeソフト(Word、PowerPointなど)に関してもブロック解除方法は同じです。
以下より、詳細を説明していきます。
2022年9月からマクロのセキュリティが厳しく変更されました
記事の最初で説明したように2022年9月24日からマクロに対するセキュリティが厳しくなりました。
インターネットから取得したマクロを含むファイルに対してブロックする(≒マクロを実行できないようにする)よう標準仕様が変更されました。
<マクロがブロックされるようになった経緯>
2022年9月24日にMicrosoft社から「インターネットから取得したマクロはブロックする(≒マクロを開いたときに、最初にマクロが実行できないようにする)仕様にした」と公表されました。
=引用:インターネットからのマクロは、Office では既定でブロックされます=
※ Microsoft社は、2022年4月にインターネットから取得したマクロはブロックする仕様にしましたが、2022年7月には、この仕様変更を一時的に撤回していました。
インターネットから取得したマクロの対象ファイル
- インターネットメール(gmailやOutlookなどを使用したインターネットを経由して受信したメール)に添付されたマクロを含んだOfficeファイル
- Webブラウザーで閲覧したサイト内にあるマクロを含んだOfficeファイル(※当該ファイルをダウンロード、またはWebブラウザ上で開く場合が対象になります)
今まではマクロを含むOfficeファイルを開こうとした場合は、保護ビューモードで開かれたため、ファイルを開いたユーザーは、Office内で保護ビューを解除してマクロを実行できていました。
しかし、これからはOfficeを開いたときにブロックされたとメッセージが表示されてOfficeソフト内では解除できなくなりました。
<今まで(2022年4月 より以前)>
マクロファイルを開いた場合に保護ビューで開かれ、「コンテンツの有効化」をクリックすればOfficeマクロは実行できていました。
<変更後(2022年9月24日 以降)>
ブロック画面が表示され、Officeファイルからはマクロを実行できません。
解除方法は大きく分けて二つある
そもそも、OSはブロックする対象としてマクロファイルの何を見て判断しているのか。
インターネットから取得したマクロを含んだOfficeファイルは、“Mark of the Web”(”MOTW”とも呼びます)というマークがWindowsより付与されるため、マクロの実行がブロックされています。
動作環境がWindowsでなく、他のOS、例えばMacなどの場合は”MOTW”が付与されないためマクロはブロックされません。
そのため、① マクロファイルのプロパティより付与された “MOTW” を消す。
または、② “MOTW” が付与されないように「この場所から取得してきたファイルは安全ですよ。」と事前に設定変更しておく。
大きく分けて、この二つの対応方法をすればブロックを避けることができます。
解除方法1:ブロックされたマクロファイルのプロパティから解除する
マクロのブロックを解除する場合は、ファイルのプロパティから保護を外す(アクセスを許可する)よう設定変更にします。
以下の操作でファイルに付与されている “MOTW” を消すことができます。
- 対象のExcelファイルにて右クリックし、「プロパティ」をクリックします。
- 全般タブ内にある「セキュリティ:」欄の「許可する」にチェックを入れます。
- 「OK」をクリックします。
なお、一度でも上記のブロック解除をしたファイルは、PC内にファイルがある以上 “MOTW” が付与されなくなります。
そのためブロックを解除したファイルの [プロパティ] にセキュリティ項目は今後表示されません。
解除方法2:エクセル内で設定変更することで事前にブロックを回避する
マクロを多く使用する場合は、毎回マクロファイルのプロパティを変更するのは大変だと思います。
そこで事前にエクセルの設定で「信頼できる場所」に追加することで、マクロはブロックされなくなります。
この操作で、信頼できる場所にあたるフォルダ等にあるExcelファイルは安全ですよと設定することができます。
今回はWebブラウザからダウンロードしたファイルが格納される「ダウンロード」フォルダを指定してみます。
<手順1>
- Excelファイルを開いて、メニュー内の「オプション」をクリックします。
- 左側にあるメニュー内の「トラストセンター」をクリックします。
- Microsoft Excel トラスト センターにある「トラスト センターの設定(T)…」をクリックします。
<手順2>
- トラスト センター左側のメニュー「信頼できる場所」をクリックします。
- 「新しい場所の追加(A)…」をクリックします。
- 表示されたダイアログ内の「参照(B)…」をクリックします。
<手順3>
- 「ダウンロード」フォルダをクリックして選択します。
- 「OK」をクリックします。
- パスの欄に選んだダウンロードフォルダのパスが入っていることを確認して「OK」をクリックします。
選択した「ダウンロード」フォルダが追加されました。
この設定後に、インターネットから取得したファイルを、信頼できる場所として追加したパスのフォルダ(例でいうダウンロードフォルダ)に格納すると、マクロがブロックされなくなります。
上記とは別にOneDriveやSharePointにマクロファイルをダウンロードした場合は、当該ファイルを開いてもマクロはブロックされません。
なお、マクロの設定で「VBA マクロを有効にする」に変更するだけでは、マクロのブロックを回避することはできません。
上記の操作でブロックが解除されない原因は、「マクロの設定」による変更は、Office 管理用テンプレートのグループ ポリシーなども併せて変更しなければ有効にならないからです。
基本的にインターネットから取得したマクロには気を付けるべき
ここまでブロックされたマクロを解除する方法を説明してきましたが、基本的にはインターネットから取得したファイルは危険だと認識した上で対応したほうがよいです。
microsoft公式サイトでも、以下のように見解を示しています。
マクロのセキュリティ保護は重要です。 マクロを必要としないユーザーの場合は、[通知なしですべて無効にする] を選択して、すべてのマクロをオフにします。
セキュリティ ベースラインの推奨事項は、次のことを行う必要があります。
- “VBA マクロ通知設定” ポリシーを有効にします。
- マクロが必要なユーザーの場合は、[デジタル署名されたマクロを除くすべて無効にする] を選択し、[信頼された発行元による署名にマクロを要求する] を選択します。 証明書は、ユーザーのデバイスに信頼できる発行元としてインストールする必要があります。
= 引用:VBA マクロ通知の設定 より抜粋=
なぜMicrosoft社が、マクロを原則ブロックするよう仕様を変更したということを改めて考える必要があります。
基本的にはマクロは危険なものという意識を常に持った上で、安全なマクロのみブロックを解除する際に、本記事の対応をしていただければと思います。
まとめ
インターネットから取得したマクロは原則ブロックされているため、解除しようとする場合は以下を行ってください。
- マクロのブロックを解除する方法は、ブロックされたマクロファイルのプロパティより「ブロックを解除」する。
- またはそもそもブロックさせない方法としては、「信頼できる場所」に設定する。
しかしブロックを解除することは簡単ですが、基本的にはマクロはリスクがあるものという認識は持つべきです。
そもそもブロックさせないために、事前設定でマクロのブロックを回避すること(信頼できる場所を指定して対応)は危機意識を低下させてしまう原因になるので、可能なら避けたい選択肢となります。
そのため、インターネットから取得したマクロを実行したいときは、必要に応じて個別にマクロのブロックを解除する対応(ファイルのプロパティから設定変更)をとるほうが良いと思います。