マクロウィルスへの対応

マクロのデジタル署名

 ここまで説明してきたとおり、VBAはバージョンアップを重ねるたびに機能強化が図られてきましたが、その一方で深刻な問題を誘発してしまいました。それがマクロウィルスです。ドキュメントを開いた途端に、悪意をもったマクロが自動的に実行されてコンピュータのデータが甚大な被害を被ったり、そのマクロ自身がウィルスのように繁殖していくわけですから、とても厄介な問題です。
 このマクロウィルスに対処するために、従来からマクロが含まれるドキュメントを開こうとすると警告メッセージが表示されるようになっていましたが(図6)、Office 2000では一歩進んで、マクロにデジタル署名を付加できるようになりました(図7)。[ツール]-[デジタル署名]コマンドを活用するためには、カスタムセットアップでOffice 2000をインストールして、「C:\Program Files\Microsoft Office\Office」フォルダの「Selfcert.exe」を実行してデジタル証明を作成します。デジタル署名されたマクロを含むドキュメントを開こうとすると、図8のような警告メッセージが表示されます。また、従来は「警告メッセージを表示するかしないか」の二者択一でしたが、Office 2000では図9の[Visual Basic]ツールバーの[セキュリティ]ボタンで開くことができる図10のダイアログボックスで、セキュリティレベルの指定が可能になりました。

図6:マクロを含むドキュメントを開いた時の警告メッセージ

図7:Office 2000ではマクロにデジタル署名を付けることができる

図8:デジタル署名が付加されているドキュメントを含むブックを開いたときの警告メッセージ

図9:Visual Basic Editorツールバーのセキュリティボタン

図10:デジタル署名に対するセキュリティレベルの設定

 ここでは、[中]を選んでおくのが無難でしょう。[中]であれば、安全であることがあらかじめわかっている署名付きのマクロが含まれている場合には自動的にドキュメントが開き、安全の確認が取れないマクロや署名のないマクロが含まれている場合は警告メッセージが表示されます。一方、セキュリティレベルを[低]にしてしまうと、いかなるマクロであっても一切警告メッセージは表示されなくなるので、当然マクロウィルスに感染する危険は増大します。かと言って、[高]にしてしまうと、ウィルスが含まれていなくても、安全の保障がないマクロが無効となってしまうので、結果的にマクロが一切利用できない羽目に陥ることでしょう。当然これもお勧めできません。