📑
共有フォルダ内のマクロ付Excelファイルを開こうとしたら「マクロの実行をブロックしています」と言われたので何とかした
TL;DR
- 共有フォルダにあるマクロ付きExcelファイルの編集ができない
- ローカルで動作させるか、ファイルごとに個別でブロック解除を行うのが本筋だが、それでは運用上支障が出てしまうので一括許可したい(詳しくは後述)
- 該当Excelファイルが存在する共有フォルダを「信頼できる場所」に追加する必要がある
- 名前ベースのUNCパスでないと追加できない。アクセスする場合も名前ベースで行う必要がある。
何が起こったのか?
環境
- Windows 10 Pro
- Excel 2019
症状
NASの共有フォルダ内に存在するマクロ付きExcelファイル(.xlsm)を開いたところ
「セキュリティリスク Microsoftでは、このファイルのソースが信頼されていないため、マクロの実行をブロックしています。」 というメッセージが表示され、編集できなくなった。
解決策
「セキュリティ センター」の「信頼できる場所」に該当Excelファイルが存在する共有フォルダを「名前で」追加する
手順
- 「ファイル」→「オプション」を選択し、「Excel のオプション」を開く
- 「セキュリティ センター」の項目へ移動し「セキュリティ センターの設定(T)...」を押下
- 「信頼できる場所」の項目へ移動する
- 「プライベート ネットワーク上にある信頼できる場所を許可する(推奨しません)(W)」のチェックを入れる
- 「新しい場所の追加(A)...」を押下し、「パス(P):」に、共有フォルダのパスを 名前で 入れる。必要であれば「この場所のサブフォルダーも信頼する(S)」のチェックを入れる
- 「OK」でウィンドウを閉じる
- 動作確認を行う
注意点
- 名前ベースでアクセスできなければならない
- IPアドレスベース(\\192.168.0.244\share\somefolder\ など)のUNCパスは信頼できる場所に登録ができない。
- 名前ベース(\\LD220ZZ\share\somefolder\ など)のUNCパスで登録し、IPアドレスベースでアクセスしていた運用を変更しなければならない。
(混在を避けるため共有フォルダ宛や共有フォルダ内のファイル宛のショートカットを全て名前ベースのものに作り替える) - アクセス先が別ネットワークに存在するなど名前ベースでアクセスできない場合は、ドメインにコンピュータアカウントを生やすか、個別にhostsファイルに追記して名前解決できるようにしてあげる必要がある。
- (そもそも)Microsoftが推奨している方法ではない
- 可能であれば、Microsoftサポートページに掲載されている方法で個別対応した方が良いと思われる
- 今回の事例では対象ファイルが多く、個別対応が困難であること、今後もマクロ付きファイルが増えていく可能性があるがMicrosoftサポートページ内の操作をユーザーに任せることが困難であることから、やむを得ず一括許可とした。
- マクロを悪用したマルウェアも多数あることから、本当に信頼できる場所かどうか見極めてから登録することが望ましい。
- ユーザーごとの設定である
- レジストリにおいては下記に記録されている。構造上、キーのエクスポート&インポートは副作用が発生する可能性があるため避けた方がよいと思われる。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\XX.0\Excel\Security\Trusted Locations
- ドメイン環境である場合、グループポリシーに設定して配布が可能のようだ
ただし、ドメインコントローラに対し、別途Office用管理用テンプレートの入手および適用が必要である。
Discussion