目次
この記事では、Excelでマクロをオンにする方法を調べ、マクロのセキュリティの基本を説明し、VBAコードを安全に実行するためのセキュリティ設定の調整方法を紹介しています。
Microsoft Excelでは、マクロはデフォルトで無効になっています。 このチュートリアルでは、Excelでマクロを有効にするさまざまな方法を説明し、それに伴う潜在的なリスクについて説明します。
Excelにおけるマクロのセキュリティ
ワークシートでマクロを有効にする前に、マクロがいかに危険であるかを理解しておくことが重要です。
VBAコードは、複雑で反復的な作業を自動化するのに非常に有効ですが、セキュリティの観点からは重大なリスク源となります。 無意識に実行した悪意のあるマクロは、ハードディスク上のファイルを破損または完全に削除し、データを混乱させ、Microsoft Officeのインストールさえ破損させるかもしれません。 このため、Excelのデフォルト設定では、すべてのマクロは、次のように無効化されます。を通知します。
自分で書いたり、記録したマクロ、信頼できるソースからのマクロ、自分で確認し、十分に理解したVBAコードなど、安全なマクロだけを有効にするというシンプルなルールを守るだけです。
個々のワークブックでマクロを有効にする方法
特定のファイルのマクロをオンにするには、ワークブックから直接行う方法と、Backstageビューから行う方法の2種類があります。
セキュリティ警告バーからマクロを有効にする
デフォルトのマクロ設定では、マクロを含むワークブックを初めて開いたとき、シートの上部、リボンのすぐ下に黄色いセキュリティ警告バーが表示されます。
マクロを含むファイルを開く際にVisual Basic Editorが開いていると、「Microsoft Excelセキュリティのお知らせ」が表示されます。
ファイルの出所を信頼し、すべてのマクロが安全であることが分かっている場合、「安全」ボタンをクリックします。 コンテンツを有効にする または マクロを有効にする ボタンをクリックすると、マクロがオンになり、ファイルが 信頼できる文書 次にワークブックを開いたとき、セキュリティの警告は表示されません。
ファイルの出所が不明でマクロを有効にしたくない場合は、「X」ボタンをクリックしてセキュリティ警告を閉じます。 警告は消えますが、マクロは無効のままです。 マクロを実行しようとすると、次のメッセージが表示されます。
誤ってマクロを無効にしてしまった場合は、ワークブックを再度開き、その中の コンテンツを有効にする ボタンをクリックすると、警告バーが表示されます。
Backstageビューでマクロをオンにする
特定のワークブックのマクロを有効にするには、Office Backstage ビューを使用する方法もあります。 その方法は次のとおりです。
- をクリックします。 ファイル タブをクリックし 情報 を左メニューに表示します。
- での セキュリティに関する警告 をクリックします。 コンテンツを有効にする > すべてのコンテンツを有効にする .
前の方法と同様に、ワークブックは信頼できる文書になります。
Excelで信頼できる文書について知っておくべきこと
メッセージバーやバックステージビューでマクロを有効にすると、そのファイルは信頼できる文書になります。 しかし、Excelファイルの中には信頼できる文書にできないものもあります。 たとえば、テンポラリフォルダなどの安全でない場所から開いたファイルや、組織内のシステム管理者が、通知なしにすべてのマクロを無効にするようにセキュリティポリシーを設定した場合です。 そのような場合、マクロは以下の場合にのみ有効にされます。これを避けるには、Trust Centerの設定を変更するか、ファイルを信頼できる場所に保存する必要があります。
特定のワークブックが信頼済み文書になると、それを解除する方法はありません。 信頼済み文書のリストを消去することだけが可能です。 そのためには、次のようにします。
- クリック ファイル > オプション .
- 左側で、以下を選択します。 トラストセンター をクリックします。 トラストセンターの設定 .
- での トラストセンター ダイアログボックスで 信頼できるドキュメント を左側に表示します。
- クリック クリア をクリックします。 よっしゃー .
これにより、それまで信頼されていたファイルはすべて信頼されなくなり、そのようなファイルを開くと、セキュリティ警告が表示されます。
ヒント:どの文書も信頼できるようにしたくない場合は、次のようにチェックします。 信頼できるドキュメントを無効にする ワークブックを開く際にマクロをオンにすることは可能ですが、現在のセッションにのみ適用されます。
1セッションでマクロを有効にする方法
例えば、VBAコードを含むExcelファイルを受け取って調査したいが、このファイルを信頼できるドキュメントにしたくない場合、マクロを一度だけ有効にすることが合理的である場合があります。
以下の手順で、ファイルを開いている間だけマクロを有効にする方法を説明します。
- をクリックします。 ファイル tab> 情報 .
- での セキュリティに関する警告 をクリックします。 コンテンツを有効にする > 詳細オプション .
- での Microsoft Officeのセキュリティオプション ダイアログボックスで このセッションのコンテンツを有効にする をクリックします。 よっしゃー .
これで1回だけマクロがオンになり、ワークブックを閉じてから再び開くと、再び警告が表示されます。
信頼センターからすべてのワークブックでマクロを有効にする方法
Microsoft Excelは、VBAコードの実行を許可するかしないかを、「マクロの設定」で選択した内容に基づいて決定します。 トラストセンター は、Excelのすべてのセキュリティ設定を行う場所です。
すべてのExcelワークブックでマクロをデフォルトで有効にするには、次のようにする必要があります。
- をクリックします。 ファイル タブをクリックし オプション をクリックすると、左のバーの一番下に表示されます。
- 左側のペインで、以下を選択します。 トラストセンター をクリックします。 トラストセンターの設定... .
注意事項
- トラストセンターで設定したオプションは、新しい デフォルトマクロ設定 特定のワークブックにのみマクロを有効にしたい場合は、代わりに信頼できる場所に保存してください。
- すべてのワークブックですべてのマクロを有効にすると、コンピュータが危険なコードにさらされる可能性があります。
エクセルマクロの設定について解説
ここでは、Trust Center のすべてのマクロ設定について簡単に説明します。
- 通知なしですべてのマクロを無効にする - すべてのマクロが無効になり、警告も表示されません。 信頼できる場所に保存されているマクロ以外は、実行できなくなります。
- すべてのマクロを通知付きで無効にする (デフォルト) - マクロは無効ですが、ケースバイケースで有効にすることができます。
- デジタル署名付きマクロを除くすべてのマクロを無効にする - 署名されていないマクロは、通知とともに無効になります。 信頼できる発行者の特別な証明書でデジタル署名されたマクロは、実行が許可されます。 発行者を信頼していない場合は、発行者を信頼してマクロを有効にするようにExcelに指示があります。
- すべてのマクロを有効にする (推奨しません) - 悪意のあるコードを含む、すべてのマクロの実行が許可されます。
- VBAプロジェクト・オブジェクト・モデルへのアクセスを信頼する - この設定は、Visual Basic for Applicationsのオブジェクト・モデルへのプログラム・アクセスを制御するもので、不正なプログラムによってマクロが変更されたり、有害なコードが自己複製されたりしないように、デフォルトでは無効になっています。
Trust Centerの設定を変更する場合、Excelのみに適用され、すべてのOfficeプログラムには適用されないことに留意してください。
信頼できる場所に恒久的にマクロを有効にする
グローバルなマクロ設定を操作する代わりに、コンピュータまたはローカルネットワーク上の特定の場所を信頼するようにExcelを設定することができます。 信頼された場所にあるExcelファイルは、マクロが有効で、セキュリティ警告が表示されない場合でも 通知なしですべてのマクロを無効にする を選択すると、他のすべてのExcelマクロが無効なときに、特定のワークブックでマクロを実行することができます!
このようなファイルの例として、個人用マクロワークブックがあります。このワークブック内のすべてのVBAコードは、マクロの設定に関係なく、Excelを起動すればいつでも使用することができます。
現在の信頼できる場所を表示したり、新しい場所を追加したりするには、次の手順を実行します。
- クリック ファイル > オプション .
- 左側のペインで、以下を選択します。 トラストセンター をクリックします。 トラストセンターの設定... .
- での トラストセンター ダイアログボックスで 信頼できる場所 Excelのアドイン、マクロ、テンプレートを正しく動作させるために重要な場所ですので、変更しないでください。 技術的には、Excelのデフォルトの場所のいずれかにワークブックを保存することができますが、独自の場所を作成することをお勧めします。
- 信頼できる場所を設定するには 新しい場所を追加する... .
- をクリックします。 ブラウズ ボタンを押して、信頼できる場所にしたいフォルダーに移動します。
- 選択したフォルダーのサブフォルダーも信頼させたい場合は、チェックボックスをオンにします。 この場所のサブフォルダーも信頼されます ボックスを使用します。
- にひとこと入力してください。 商品説明 フィールド(これは、複数の場所を管理するのに役立ちます)または空のままにしておきます。
- クリック よっしゃー .
これで、マクロを含むワークブックを自分の信頼できる場所に置くことができ、Excelのセキュリティ設定に悩まされることはありません。
ヒントと注意点
- 信頼できる場所を選択する際には、十分な注意が必要です。 信頼できる場所に保存されたすべてのワークブックのマクロが自動的に有効になるため、セキュリティシステムの抜け穴のようなものとなり、マクロウイルスやハッキング攻撃に対して脆弱になります。 一時フォルダは絶対に信頼できるソースにしないでください。 ドキュメント フォルダを作成し、そのサブフォルダを信頼できる場所として指定する必要があります。
- 誤って特定のフォルダーを信頼できる場所のリストに追加してしまった場合は、そのフォルダーを選択して 削除 ボタンをクリックします。
VBAでマクロをプログラム的に有効にする方法
Excelのフォーラムでは、ワークブックを開くときにプログラムでマクロを有効にし、終了する前にマクロを無効にすることは可能か、という質問が多く寄せられます。 即答で「いいえ、できません」と答えます。 Excelのセキュリティにとってマクロのセキュリティは重要なので、MicrosoftはどんなVBAコードもユーザーのクリックによってのみ起動するように設計されています。
しかし、マイクロソフトがドアを閉めれば、ユーザーは窓を開ける :) 回避策として、ある人が「スプラッシュスクリーン」または「説明書」のようなものでユーザーにマクロを有効にするよう強制する方法を提案しました。 一般的なアイデアは次のようなものです。
1枚を除くすべてのワークシートを非表示にするコード(xlSheetVeryHidden)を書き、表示されているシート(スプラッシュスクリーン)には、「マクロを有効にしてファイルを開き直してください」といった内容やより詳細な指示が表示されるようにしました。
マクロを無効にすると、ユーザーは「スプラッシュスクリーン」ワークシートのみを見ることができ、他のすべてのシートは非常に非表示になります。
マクロが有効な場合、このコードではすべてのシートの非表示を解除し、ワークブックを閉じたときに再び非常に非表示にします。
Excelでマクロを無効にする方法
すでに述べたように、Excelのデフォルト設定は、通知とともにマクロを無効にし、ユーザーが望むなら手動で有効にすることができます。 もし、通知なしですべてのマクロを静かに無効にしたい場合は、信頼センターで対応するオプション(最初のもの)を選択します。
- Excelで ファイル tab> オプション .
- 左側のペインで、以下を選択します。 トラストセンター をクリックします。 トラストセンターの設定... .
- 左のメニューで マクロの設定 を選択します。 通知なしですべてのマクロを無効にする をクリックします。 よっしゃー .
以上、エクセルでマクロを有効・無効にする方法でした。 読んでいただきありがとうございました!来週のブログでお会いできるのを楽しみにしています。