Microsoft Office Online
Office Online にサインイン (サインインとは?) | サインイン

 
 
Microsoft Office Access
検索
検索
 
以前のバージョン: (c) Microsoft
以前のバージョンの製品情報
更新プログラムの確認: (c) Microsoft
Office のダウンロード
 
 
 
注意: このページはサポートされていない Web ブラウザで表示されています。この Web サイトは、Microsoft Internet Explorer 6.0 以降、Firefox 1.5、または Netscape Navigator 8.0 以降を使用すると、正しく表示されます。 サポートされているブラウザの詳細情報

印刷用ページの表示印刷用ページの表示 ブックマークを設定して共有共有
Access データベースの Visual Basic for Applications のコードの保護について (MDB)
 

メモ  このトピック内の情報は、Microsoft Access データベース (.mdb) のみに適用します。

Microsoft Visual Basic for Applications (VBA) (Visual Basic for Applications (VBA) : アプリケーション プログラムを作成するのに使用される Visual Basic のマクロ言語版。主な Microsoft アプリケーションで VBA を利用できます。) のコードは、パスワードを設定したり、MDE ファイルとしてデータベースを保存したりすることにより保護します。ユーザーレベルのセキュリティ (ユーザーレベルのセキュリティ : Access データベースでユーザーレベルのセキュリティを使用している場合、データベースの管理者またはオブジェクトの所有者は、テーブル、クエリ、フォーム、レポート、マクロなどのオブジェクトに対して、個々のユーザーに特定の権限を与えることができます。)では、コードは保護されません。ただし、コードを参照するフォームおよびレポートは保護されます。

表示パスワードを設定して VBA (Visual Basic for Applications) コードを保護する

Microsoft Access プロジェクト (.adp) (Access プロジェクト : Microsoft SQL Server データベースに接続し、クライアント/サーバー アプリケーションの作成に使用する Access ファイル。プロジェクト ファイルには、データやデータ定義を基にしたオブジェクト、つまりテーブルやビューなどは含まれません。)Microsoft Access データベース (.mdb) (データベース : 何らかの関連性を持ったデータの集まり。データベースには、個別の項目 (社員や注文など) に関する情報がテーブル、レコード、およびフィールドに分類されています。) では、すべての標準モジュール (標準モジュール : Access のモジュールの 1 つ。標準モジュールの Sub プロシージャや Function プロシージャは、データベース内の他のすべてのプロシージャから呼び出すことができます。)およびクラス モジュール (クラス モジュール : 新規オブジェクトの定義が含まれるモジュール。クラスの各インスタンスによって、新規オブジェクトが作成されます。モジュールで定義されたプロシージャは、そのオブジェクトのプロパティとメソッドになります。クラス モジュールは、単独にも、フォームやレポートと関連した形にもできます。)の VBA コード (フォームやレポートで使用するコードなど) を、パスワードで保護できます。パスワードを設定した場合、Visual Basic Editor で VBA コードを表示または編集しようとするときに、パスワードの入力を求められます。一度パスワードを設定すると、セッションのたびに、パスワードが求められるようになります。モジュールを表示および編集するときだけでなく、切り取り、コピー、貼り付け、エクスポート、および削除するときにもパスワードを入力する必要があります。ただし、このように VBA コードにセキュリティ対策を施しても、既存の VBA コードを実行するユーザーは制限できません。

表示データベースを MDE ファイルとして保存する

Microsoft Access データベース (データベース : 何らかの関連性を持ったデータの集まり。データベースには、個別の項目 (社員や注文など) に関する情報がテーブル、レコード、およびフィールドに分類されています。)を MDE ファイルとして保存すると、モジュールはすべてコンパイルされ、編集可能なソース コードはすべて削除され、データベースは最適化されます。Visual Basic コードは実行できますが、表示したり編集したりできなくなります。データの更新やレポートの実行などのデータベースの機能は、そのまま普通に動作します。また、コードが削除されるため Access データベースのサイズが小さくなり、メモリの使用法も最適化されるため性能が向上します。

Access データベースを MDE ファイルとして保存しても、データベースのデザインを変更することはできます。ただし、次の操作ができなくなります。

  • フォーム、レポート、またはモジュールの変更または作成に使用するユーザー インターフェイスが無効になります。
  • [VBA References] ダイアログ ボックスで、オブジェクト ライブラリまたはデータベースへの参照を追加、削除、または変更できません。
  • ソース コードを利用できなくなります。
  • フォーム、レポート、またはモジュールのインポートおよびエクスポート コマンドが無効になります。ただし、テーブル、クエリ、データ アクセス ページ、およびマクロを MDE 以外のデータベースからインポートしたり、MDE 以外のデータベースにエクスポートすることは可能です。

表示モジュールおよびユーザーレベルのセキュリティ

Microsoft Access 2000 以降のデータベースでは、以前のバージョンとは異なり、標準モジュール (標準モジュール : Access のモジュールの 1 つ。標準モジュールの Sub プロシージャや Function プロシージャは、データベース内の他のすべてのプロシージャから呼び出すことができます。)およびクラス モジュール (クラス モジュール : 新規オブジェクトの定義が含まれるモジュール。クラスの各インスタンスによって、新規オブジェクトが作成されます。モジュールで定義されたプロシージャは、そのオブジェクトのプロパティとメソッドになります。クラス モジュールは、単独にも、フォームやレポートと関連した形にもできます。) (フォームおよびレポートで使用するコードなど) で、ユーザーレベルのセキュリティを使用できなくなりました。ただし、フォームおよびレポートでは、ユーザー レベルのセキュリティを利用できます。つまり、モジュールと、フォームおよびレポートとで、異なるセキュリティ方式を使用するようになりました。

たとえば、フォームにコントロールを追加する権限 (権限 : データベースのデータやオブジェクトについてユーザーに与えるアクセス権の種類を指定する属性です。)を持っている場合でも、VBA プロジェクトの表示がパスワードでロックされているときは、そのパスワードを知らない限り、フォームの背後にあるモジュールを表示および編集できません。逆も同様です。オブジェクトに対する [構造の変更] 権限がないと、ユーザーレベルのセキュリティにより、フォームまたはレポートの作成が制限されます。ただし、その場合でも、VBA プロジェクトのパスワードを知っていれば、フォームやレポートの背後にあるモジュールにはアクセスできます。

ただし、例外があります。フォームまたはレポートに対する [構造の変更] 権限があっても、フォームまたはレポートを削除したり、HasModule プロパティを "No" に設定することはできません。これらの操作はフォームまたはレポートの背後にあるモジュールを削除するため、[構造の変更] 権限では許可されません。

広告