本記事には広告が含まれています

【Excel VBA ベーシック】合格講座 Vol.4|マクロのセキュリティ設定

Excel-VBA-ベーシック合格講座-Vol.4のアイキャッチ

この記事では、VBAエキスパート「Excel VBA ベーシック」試験の出題範囲から、マクロのセキュリティ設定について解説します。

試験で問われる「4段階のセキュリティレベル」と「トラストセンターの操作方法」を押さえましょう。

本記事の解説で使用する公式テキスト

マクロのセキュリティとは

Excel VBA(マクロ)は非常に強力な機能ですが、その反面、悪意のあるコードが実行されるリスクも伴います。そのため、Excelにはマクロの実行を制御するセキュリティ機能が備わっています。

セキュリティ設定はトラストセンターという画面で管理します。開き方は次のとおりです。

トラストセンターの開き方

  1. Excelを起動する
  2. 「ファイル」タブをクリック
  3. 「オプション」をクリック
  4. 「トラスト センター」を選択
  5. 「トラスト センターの設定」ボタンをクリック
  6. 左メニューから「マクロの設定」を選択

ここで表示される4つの選択肢が、マクロのセキュリティレベルです。

開発タブが表示されている場合は、「開発」⇒「コード」⇒「マクロのセキュリティ」からでも開くことができます。また、Excel2019以前では「セキュリティセンター」の表記がされています。

4段階のセキュリティレベル

マクロのセキュリティには以下の4段階があります。それぞれの特徴と試験での出題ポイントを確認しましょう。

1. 警告せずにVBAマクロを無効にする

最も厳格な設定です。この設定では、マクロは無条件で無効化されます。

警告メッセージは表示されずマクロを含むブックを開いても、VBAコードは一切実行されません。

あなたがVBAツールの提供者であるなら「マクロが使えない」「エラーで動かない」という問い合わせに対して、まずこのセキュリティ設定を疑いましょう。

2. 警告して、VBAマクロを無効にする(推奨設定)

Excelの既定値であり、最も推奨される設定です。

マクロを含むブックを開くと、数式バーの下に黄色いセキュリティ警告バーが表示されます。この時点ではマクロは無効化されています。

「コンテンツの有効化」ボタンをクリックすると、そのブックのマクロが有効になります。一度有効化したブックは信頼済みドキュメントとして記録され、次回以降は警告なしで開くことができます。

3. 電子署名されたマクロを除き、VBAマクロを無効にする

電子署名(デジタル署名)が付与されたマクロのみを信頼し、それ以外のマクロは無効化する設定です。

電子署名とは、コードの作成者を証明し、改ざんされていないことを保証する仕組みです。企業などで信頼できる開発者が作成したマクロだけを実行したい場合に使用されます。

実務での利用場面はほぼ皆無であるため、試験対策として電子署名の有無でマクロの有効・無効が判定されるという点を理解しておけば十分です。

4. VBAマクロを有効にする(非推奨)

すべてのマクロを無条件で有効化する設定です。

この設定はセキュリティ上、非常に危険です。インターネットから取得した悪意のあるマクロであっても、警告なく実行されてしまいます。

Excel VBAにはブックを開いた瞬間に自動実行されるマクロ(Workbook_Openイベントというもの)を記述できるため、インターネットからダウンロードした悪意のあるファイルは、この設定のままだと、あなたのPCにログインした状態で可能なすべてのことを、あなたがファイルを開くだけで実行することができます。

信頼済みドキュメントとは

「警告して、VBAマクロを無効にする」設定で「コンテンツの有効化」をクリックすると、そのブックは信頼済みドキュメントとして登録されます。

信頼済みドキュメントとして登録されたブックは、次回以降、同じ場所から開く限り警告が表示されなくなります。

信頼済みドキュメントの一覧はトラストセンターで確認でき、リセット(クリア)することも可能です。

信頼済みドキュメントのリセット手順

  1. トラストセンターを開く
  2. 「信頼済みドキュメント」を選択
  3. 「クリア」ボタンをクリック

試験対策まとめ

セキュリティレベルの一覧

セキュリティレベル警告表示マクロの既定状態有効化の方法
警告せずに無効にするなし無効不可
警告して無効にする(推奨)あり無効コンテンツの有効化
電子署名以外を無効にする条件付き署名なしは無効署名があれば自動有効
すべて有効にする(非推奨)なし有効自動で有効

練習問題

準備中

次の記事へ

次回はモジュールについて解説します。VBAのコードを記述する場所であるモジュールの種類と役割を学びましょう。

📘 次の記事 →

我流コードから脱却するための公式テキスト
EngineeringExcelVBA BasicVBAExpert
スポンサーリンク

Comment