次の方法で共有


Form.HasModule プロパティ (Access)

フォームまたはレポートにクラス モジュールがあるかどうかを指定または判断するには、 HasModule プロパティを使用します。 読み取り/書き込みが可能な Boolean です。

構文

HasModule

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

注釈

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

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

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

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

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

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

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

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

オブジェクトのプロパティ シートを使用して HasModule プロパティを No に設定するか、Visual Basic を使用して False に設定すると、オブジェクトのクラス モジュールとそのオブジェクトに含まれる可能性のあるコードが削除されます。

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

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

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

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