VBAのセキュリティ設定の変更方法・強制解除コードを解説!


VBAを実行できずセキュリティ解除する方法がわからない・・・
VBAのセキュリティ設定を変更する方法が知りたいな・・・

VBAで作成されたツールを初めて使う場合は、セキュリティ設定の警告が出てきて動かすことができません。VBAを少しでも知っていれば自分でも解除できるのですが、VBAがわからない場合は自分で解除することは難しいですよね。

こんにちは!フリーランスエンジニア兼テックライターのワキザカです。

この記事では、VBAのセキュリティ設定を解除する方法について解説します!

この記事はこんな人のために書きました。

  • VBAで作成されたツールを初めて使う人
  • VBAのセキュリティ設定を変更する方法を知りたい人

目次

VBAのセキュリティとは

はじめに、VBAのセキュリティについて解説します。

VBAでは、Excelを開いたときに自動で動かす処理を作ることができます。月次データをまとめたブックを開くときに、日次データをまとめた別ブックのデータを読み込んでから開くような処理を作れるのです。

このように、信頼のあるツールや処理を動かす場合はいいのですが、外部からダウンロードしたツールの場合は、悪質な処理が書かれていることもあります。いきなり処理を実行しないために、Excelにはセキュリティ設定があります。

そのため、初めてVBAのツールを動かすときは、マクロのセキュリティ設定を変更する必要があるのです。一度設定すれば以降はその設定が継続されるので、変更方法について解説しますね。

VBAのセキュリティ設定を変更する方法

次に、VBAのセキュリティ設定を変更する方法について言解説します。

セキュリティ設定を変更する手順は、以下のとおりです。

1. ファイルタブからオプションを選択

ファイルタブからオプションを選択

2. セキュリティセンターから「セキュリティセンターの設定」を選択

「セキュリティセンターの設定」を選択

3. マクロの設定を変更し、OKボタンをクリック

マクロの設定を変更

ちなみに今回は「すべてのマクロを有効にする」を選択していますが、悪質なマクロを自動で動かさないようにしたい場合は、2番目の「警告を表示してすべてのマクロを無効にする」を選択すればOKです。

次のように初回は警告が出てきますが、「コンテンツ有効化」をクリックすればVBAの処理を動かすことができます。


セキュリティの警告例

悪質なツールを動かさないようにしたい場合は、この設定がおすすめですね。

誤ってVBAのセキュリティ警告を消してしまった場合の対処方法

ただ、はじめてセキュリティ設定警告が出てきた場合は対処方法がわからず、次のように「×」ボタンで閉じてしまうケースもありますよね。


×ボタンの場所

この場合は、次の手順で変更することもできます。

1. ファイルタブを開いて「情報 → コンテンツの有効化 → 詳細オプション」をクリック

詳細オプションを選択

2. 「このセッションのコンテンツを有効にする」をクリック

このセッションのコンテンツを有効にする

セキュリティ警告が出ている時点でこの方法を使って変更することもできるので、どちらか覚えておけばOKですね。

VBAのセキュリティ設定変更にはリスクが伴う

「マクロを全て有効」にすれば、セキュリティ警告の設定を表示せずにVBAのツールを動かすことはできます。

ただ、VBAにはExcelだけでなく次のような処理を作ることもできます。


■VBAで作れる外部連携操作の例

  • フォルダ・ファイルの操作
  • InternetExplorerと連携したWeb操作
  • その他MSソフト(Outlook、PowerPoint、Accessなど)の操作

そのため、悪質なユーザーがVBAを駆使すれば次のような処理を作れてしまいます。


■VBAで作った悪質な処理の例

  • Outlookの連絡帳のデータをExcelに保存し、ファイル添付して外部にメール送信
  • Web上からウイルスを埋め込んだファイルをダウンロード

楽だからという安易な考えてすべて有効化するのではなく、マクロのセキュリティ設定の意味を理解しつつ設定を変更することが重要です。セキュリティ事故を防ぐためにも、ぜひ意味を理解して設定を変更するようにしてくださいね!

まとめ

今回は、VBAを実行するためのマクロのセキュリティ設定の変更方法を解説しました。

設定1つとっても、セキュリティリスクがあるので注意が必要です。

ぜひ意味を理解した上で、設定変更を行うようにしてくださいね!

この記事を書いた人

北海道出身の30歳で、フリーランスエンジニア兼テックライターとして活動中。新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!
侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。

目次