マクロのセキュリティと共有に関する問題
マクロのセキュリティに関しては、主に次のような問題があります。
知的所有権の保護
ウイルスの回避と保護
マクロはソース コードとして配布されてコンパイルできないため、だれでもコードを見ることができます。 知的所有権を保護するには、コードをアドインの中に入れ、アドインをコンパイルし、コンパイル済みのバイナリ ファイルだけを配布します。 これにより、ソース コードを自由に見ることはできなくなります。
マクロとウイルスに関しては、Visual Studio のマクロは、マクロ プロジェクトを開いたときにマクロ コードが自動的に実行されることはないので安全です。 マクロは明示的に実行する必要があります。 さらに、実行する前にコードを検査し、コードの安全を確認できます。 Visual Studio は、マクロ プロジェクトを開くときに、自動的に実行される可能性のあるイベント処理コードを探し、発見された場合は危険なコードがあることをユーザーに警告します。 この場合は、コードを無効にして安全に開くことができます。
各プロジェクト ノードには、それぞれ個別のセキュリティ設定があります。 プロジェクト単位でイベント コードを無効にするかどうかを指定できます。 設定は次のとおりです。
イベント処理コードを無効にする
イベント処理コードを有効にする (既定値)
この設定を使うと、たとえば、特定のマクロ プロジェクトについてだけイベント処理コードを無効にできます。
マクロの共有に関する問題
マクロ ファイルを保存する形式には、バイナリとテキストの 2 種類があります。 マクロをバイナリ形式 (.Vsmacro) で保存すると、複数のマクロ プロジェクトを 1 つのファイルに格納し、一括して簡単に配布できます。 マクロをテキスト ファイルとして保存すると、コードの移植性が高くなり、たとえば、マクロを切り取って電子メール メッセージに貼り付け、ほかのユーザーと簡単に共有できます。
Visual Studio で配布されていないコンポーネント (.dll ファイルやタイプ ライブラリなど) をバイナリ マクロ プロジェクトで参照している場合は、.Vsmacros ファイルを配布するときにコンポーネントも一緒に配布する必要があります。
ヒント
マクロ プロジェクトを受け取った場合は、プロジェクトのセキュリティ プロパティを "イベント処理コードを無効にする" に設定し、実行する前にコードを検査することを強くお勧めします。 セキュリティ プロパティを設定しなかったり、コードを検査しなかったりすると、ウイルスやその他の有害なコードが実行される危険性があります。