ソリューションの VBA コードを保護する

Microsoft Office 2000/Visual Basic プログラマーズ ガイド   

既定により、Word、Excel、FrontPage、Access、Outlook、または PowerPoint のソリューション内の VBA コードは、Visual Basic Editor を開いてアクセスすることが可能です。アクセス セキュリティが設定されていない場合、不特定多数のユーザーがソリューションのコードを開き、変更を加え、結果としてコードを壊す可能性があります。さらに、マクロ ウィルスの侵入や、故意に異常動作するコードをユーザーが追加するなどの行為により、ユーザーのコンピュータに存在するファイルのセキュリティおよび設定が変更される可能性があります。ソリューションの VBA コードに対するアクセスを制御する方法には次の 4 つがあります。

  • ドキュメント、テンプレート、またはデータベースの VBA コードを表示する前に必要なパスワードを設定します。この操作は、ドキュメントの VBA プロジェクトをロックすると呼ばれます。VBA コードは引き続き動作しますが、コードを表示できるのは正しいパスワードを知っているユーザーのみです。

  • VBA コードに最も高いレベルのセキュリティを設定するには、Microsoft Visual Basic 6.0 を使用してコンポーネント オブジェクト モデル (COM) アドインを作成します。COM アドインの VBA コードはダイナミック リンク ライブラリ (DLL) としてコンパイルされるため、変更を加えるには、作成時に使用したソース コードにアクセスする必要があります。アプリケーション固有のアドインはコンパイルされないため、テンプレートおよびドキュメントと同様の保護を設定する必要があります。

  • Access では、.mdb または .adp ファイルを、コンパイルされた VBA コードのみを含み、ソース コードは含まれないファイルの種類として保存することが可能です。.mdb ファイルでは、このようなファイルは .mde ファイルと呼ばれ、.adp ファイルでは .ade ファイルと呼ばれます。これらのファイルに含まれる VBA コードは引き続き動作しますが、表示または変更することはできません。

  • ファイル システム アクセス制御機能を使用して、ドキュメントとテンプレートに対するユーザーの操作を制御することができます。

このセクションでは、ソリューションの VBA プロジェクトをロックする方法を説明します。COM アドインの作成方法については、第 11 章「アドイン、テンプレート、ウィザード、およびライブラリ」を参照してください。Access の .mde および .ade ファイルの詳細については、第 18 章「Access データベースにセキュリティを設定する」を参照してください。ファイルに対するアクセスの制御については、この章の「ファイル システムのアクセス制御を使用してドキュメントに対するアクセスを保護する」を参照してください。