【本日のミッション】
Excel VBA 「セキュリティリスク このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました。」 を解決せよ。
目次
ミッションの概要
Excel マクロを含まれているファイルを開いた際に「セキュリティリスク このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました。」と表示される現象を解決せよ、というのが今回のミッションです。
Excelマクロファイルを開こうとすると、「セキュリティリスク このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました。」とメッセージが出て、何をどうしてもファイルを開くことができなくなってしまいました。
<詳細を表示>ボタンをクリックすると下記サイトが表示されます。
潜在的に危険なマクロがブロックされました
セキュリティレベルを落とすことなく、解決できた方法をご紹介します。
また、その方法でもうまくいかない場合の解決方法もご紹介します。
原因
Microsoft Office から 「Emotet」などのマルウェア対策として、マクロを遮断するレベルのセキュリティプログラムが公開されています。
セキュリティリスク現象がみられるようになったのは、そのプログラムの更新がされたタイミングと思われます。
セキュリティリスク 解決方法
ファイルを開く際のネットワークドライブのアドレスを、IPアドレスではなくサーバ名に変更します。
フォルダからファイルを開く場合
【セキュリティリスクを出さない方法】
ファイルの入っているフォルダのアドレスバーのフォルダパスを確認し、ネットワークドライブのアドレス 部分がサーバ名になっている場合は、セキュリティリスクエラーになりません。
¥¥NAS¥disk¥VBA
【セキュリティリスクが出てしまう場合】
ファイルの入っているフォルダのアドレスバーのフォルダパスを確認し、ネットワークドライブのアドレスがIPアドレスになっている場合は、セキュリティリスクエラーになります。
¥¥192.168.0.999¥disk¥VBA
ショートカットからファイルを開く場合
ショートカットのファイルを右クリック→プロパティ→ショートカットタブにて、そのショートカットのリンク先を調べることができます。
【セキュリティリスクを出さない方法】
リンク先に表示されているファイルパスを確認し、ネットワークドライブのアドレス 部分がサーバ名になっている場合は、セキュリティリスクエラーになりません。
¥¥NAS¥disk¥VBA¥File.xlsm
【セキュリティリスクが出てしまう場合】
リンク先に表示されているファイルパスを確認し、ネットワークドライブのアドレスがIPアドレスになっている場合は、セキュリティリスクエラーになります。
¥¥192.168.0.999¥disk¥VBA¥File.xlsm
ショートカットのリンク先を変更する
ショートカットープロパティのリンク先のテキストを、サーバの名前に変更すればOKです。
IPアドレスをサーバ名に変更してもセキュリティリスクが出てくるときの解決法
サーバ名経由でファイルを開いても、セキュリティリスクが出てくる場合があります。
インターネットからダウンロードしたファイル、メールに添付されていたファイル等です。
これらのファイルは上記方法ではもちろんダメで、ローカルのデスクトップに保存しても開くことができませんでした。
これを解決する方法はここに記載してありました。
<詳細を表示>ボタンをクリック→潜在的に危険なマクロがブロックされました
ファイルを右クリックして「プロパティ」をクリックします。
下部に「セキュリティ」の項目があります。
「このファイルは他のコンピューターから取得したものです。このコンピューターを保護するため、このファイルへのアクセスはブロックされる可能性があります」
この「許可する」にチェックを入れて<OK>ボタンをクリックします。
これで、ファイルを開くことができます。
【参考】
指定したフォルダ内のファイル名全てを取得(Excel VBA)
変数でよく使われる「buf」「tmp」の意味
Dir関数が取得するファイルの順番
指定したフォルダ内のフォルダ名全てをGetAttrを使って「エラー53 ファイルが見つかりません。」を出さずに取得(Excel VBA)
GetAttrとは?「= vbDirectory」ではなく「And vbDirectory」となるビット演算の疑問
フォルダ名だけを取得したい時に出てくる 「.」 と 「..」 とは?
指定したフォルダ内とサブフォルダ内全てのファイル名を取得(Excel VBA)
CreateObject(“Scripting.FileSystemObject”) を使ってサブフォルダを取得
再帰処理とは?フォルダ内とサブフォルダ内全てのファイル名を取得(Excel VBA)
指定したフォルダ内のサブフォルダのフォルダ名を全部取得(Excel VBA)
再帰処理とは?フォルダ内のサブフォルダのフォルダ名を全部取得(Excel VBA)
参照渡し「ByRef」と値渡し「ByVal」の違い(Excel VBA)
ファイルのフルパスからファイル名のみを取得 InStrRev関数(Excel VBA)
指定したフォルダの全ての階層のフォルダ名・サブフォルダ名・ファイル名を取得(Excel VBA)
FileSystemObjectとは?CreateObject 関数 FolderExists・GetFolderの使い方
FileSystemObject CreateObject関数を使う方法・ 参照設定を使う方法 違いを理解してエラー防止
再帰処理とは?指定したフォルダの全ての階層のフォルダ名・サブフォルダ名・ファイル名を取得(Excel VBA)
ファイルのフルパスからファイル名のみを取得 Split関数(Excel VBA)
Callステートメントとは 引数 括弧()の使い方(Excel VBA)
指定したフォルダ内から「特定の文字を含まないファイル名」を取得(Excel VBA)
ワイルドカードとは。使い方いろいろ。(Excel)
Dir関数の使い方。ファイル名やフォルダ名の取得方法。(Excel VBA)
指定したフォルダのファイル名を取得し、そのファイル名を一括で変換(Excel VBA)
Excel起動時に「コンパイルエラー」。64ビット システムで Declareステートメントに、PtrSafe属性を設定(Excel VBA )
「ファイルを開く」ダイアログボックス から ファイル名を取得(Excel VBA)
「ファイルを開く」ダイアログボックス から 複数 ファイル名を取得(Excel VBA)
指定フォルダ内のサブフォルダ全てをフォルダ構成のみ(空フォルダ)を別フォルダにコピー(Excel VBA)
再帰処理とは?指定フォルダ内のサブフォルダ全てをフォルダ構成のみ(空フォルダ)を別フォルダにコピー(Excel VBA)
エクセル Dir関数 を使ってファイルの存在(有無)を確認する(Excel VBA)
エクセル FileSystemObject を使ってファイルの存在(有無)をチェックする(Excel VBA)
Excel Dir関数 存在しないファイル・フォルダが「存在している」と判定される理由(Excel VBA)
64ビットExcel起動時にコンパイルエラー。Private Declare Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)(Excel VBA )
Excel VBA セキュリティリスク このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました。 を解決