Form.HasModule プロパティ (Access)

HasModule プロパティを使用して、フォームまたはレポートにクラス モジュールがあるかどうかを指定または決定します。 値の取得と設定が可能なブール型 (Boolean) の値です。

構文

HasModule

expressionForm オブジェクトを表す変数です。

注釈

"HasModule/コード保持" プロパティの設定値は次のとおりです。

Setting Visual Basic 説明
はい True フォームまたはレポートにクラス モジュールがあります。
No/いいえ False フォームまたはレポートにクラス モジュールがありません。(既定値)

このプロパティを False に設定すると、処理効率を向上させ、データベースのサイズを小さくすることができます。

" HasModule /コード保持" プロパティは、フォームのデザイン ビューまたはレポートのデザイン ビューでのみ設定でき、すべてのビューで値の取得が可能です。

" HasModule /コード保持" プロパティが [No/いいえ] に設定されたフォームまたはレポートは、軽いオブジェクトと見なされます。 軽いオブジェクトは、クラス モジュールに関連するオブジェクトよりも小さく、通常は速く読み込まれ、速く表示されます。 多くの場合、フォームまたはレポートでイベント プロシージャを使う必要はなく、クラス モジュールは必要ありません。

アプリケーション内で他のフォームに移動する目的でメニュー フォームを使う場合は、イベント プロシージャ付きのコマンド ボタンの代わりにマクロまたはハイパーリンク付きのコマンド ボタンを使うことができます。 たとえば、交換局のコマンド ボタンから [従業員] フォームを開くには、コントロールの HyperlinkSubAddress プロパティを "従業員フォーム" に設定します。

軽量オブジェクトはオブジェクトブラウザに表示されず、New キーワード (keyword) を使用してオブジェクトの新しいインスタンスを作成することはできません。 軽いフォームまたはレポートは、サブフォームまたはサブレポートとしても使うことができ、 Forms または Reports コレクションの中に入ります。 軽量オブジェクトでは、標準モジュールに存在するマクロおよびパブリック プロシージャがオブジェクトのプロパティ シートから呼び出されるときに使用できます。

オブジェクトのモジュールを表示しようとすると、モジュールに実際はコードがない場合でも、"HasModule/コード保持" プロパティが True に設定されます。 たとえば、デザイン ビューでフォームの [表示] メニューから [コード] を選択すると、クラス モジュールが Form オブジェクトに追加され、その HasModule プロパティが True に設定されます。 オブジェクトのプロパティ シートで "HasModule/コード保持" プロパティを [Yes/はい] に設定して、同じ方法でオブジェクトにクラス モジュールを追加できます。

オブジェクトのプロパティ シートを使用して HasModule プロパティを No に設定するか、Visual Basic を使用して False に設定すると、Access はオブジェクトのクラス モジュールおよびそれに含まれるすべてのコードを削除します。

Module オブジェクトのメソッドを使用する場合、またはデザイン ビューでフォームまたはレポートの Module プロパティを参照すると、関連するモジュールが作成され、オブジェクトの HasModule プロパティが True に設定されます。 実行時にフォームまたはレポートの Module プロパティを参照し、オブジェクトの "HasModule/コード保持" プロパティを False に設定した場合はエラーが発生します。

CreateForm または CreateReport メソッドを使って作成されたオブジェクトは、既定では軽いオブジェクトです。

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。