モジュールの名前を宣言し、モジュールが構成する変数、プロパティ、イベント、およびプロシージャの定義を導入します。
構文
[ <attributelist> ] [ accessmodifier ] Module name
[ statements ]
End Module
部品
attributelist
任意。
属性リストを参照してください。
accessmodifier
任意。 次のいずれかを指定できます。
Visual Basic のアクセス レベルを参照してください。
name
必須。 このモジュールの名前。
「宣言された要素名」を参照してください。
statements
任意。 このモジュールの変数、プロパティ、イベント、プロシージャ、および入れ子になった型を定義するステートメント。
End Module
Module
定義を終了します。
注釈
Module
ステートメントは、その名前空間全体で使用できる参照型を定義します。
モジュール (標準モジュールとも呼ばれます) はクラスに似ていますが、いくつかの重要な違いがあります。 すべてのモジュールにはインスタンスが 1 つだけ含まれており、変数を作成したり、変数に割り当てたりする必要はありません。 モジュールでは、継承をサポートしたり、インターフェイスを実装したりすることはできません。 モジュールがクラスまたは構造体であるという意味では 型 ではないことに注意してください。モジュールのデータ型を持つプログラミング要素を宣言することはできません。
Module
は名前空間レベルでのみ使用できます。 つまり、モジュールの 宣言コンテキスト はソース ファイルまたは名前空間である必要があり、クラス、構造体、モジュール、インターフェイス、プロシージャ、またはブロックにすることはできません。 別のモジュール内または任意の型内でモジュールを入れ子にすることはできません。 詳細については、「 宣言コンテキストと既定のアクセス レベル」を参照してください。
モジュールの有効期間は、プログラムと同じです。 メンバーはすべて Shared
であるため、プログラムの有効期間も同じです。
モジュールは既定で フレンド アクセスです。 アクセス修飾子を使用してアクセス レベルを調整できます。 詳細については、「 Visual Basic のアクセス レベル」を参照してください。
モジュールのすべてのメンバーは暗黙的に Shared
。
クラスとモジュール
これらの要素には多くの類似点がありますが、いくつかの重要な違いもあります。
用語。 以前のバージョンの Visual Basic では、 クラス モジュール (.cls ファイル) と標準モジュール (.bas ファイル) の 2 種類 のモジュール が認識されます。 現在のバージョンでは、これらの クラス と モジュールがそれぞれ呼び出されます。
共有メンバー。 クラスのメンバーが共有メンバーかインスタンス メンバーかを制御できます。
オブジェクトの向き。 クラスはオブジェクト指向ですが、モジュールはオブジェクト指向ではありません。 そのため、クラスのみをオブジェクトとしてインスタンス化できます。 詳細については、「 オブジェクトとクラス」を参照してください。
準則
修飾子。 すべてのモジュール メンバーは暗黙的に 共有されます。 メンバーを宣言するときに
Shared
キーワードを使用することはできません。また、メンバーの共有状態を変更することもできません。継承。 モジュールは、すべてのモジュールが継承する Object以外の型から継承することはできません。 具体的には、あるモジュールを別のモジュールから継承することはできません。
Objectを指定する場合でも、モジュール定義で Inherits ステートメントを使用することはできません。
既定のプロパティ。 モジュールで既定のプロパティを定義することはできません。 詳細については、「 既定値」を参照してください。
行動
アクセス レベル。 モジュール内では、各メンバーを独自のアクセス レベルで宣言できます。 モジュール メンバーは既定で パブリック アクセスに設定されます。ただし、変数と定数は除き、既定では プライベート アクセスになります。 モジュールのアクセスが、そのメンバーの 1 つよりも制限されている場合は、指定されたモジュール アクセス レベルが優先されます。
範囲。 モジュールは名前空間全体のスコープ内にあります。
すべてのモジュール メンバーのスコープは、モジュール全体です。 すべてのメンバーが 型の昇格を受けることに注意してください。これにより、モジュールを含む名前空間にスコープが昇格されます。 詳細については、「 型の昇格」を参照してください。
資格。 1 つのプロジェクトに複数のモジュールを含め、同じ名前のメンバーを 2 つ以上のモジュールで宣言できます。 ただし、そのモジュールの外部からの参照である場合は、そのようなメンバーへの参照を適切なモジュール名で修飾する必要があります。 詳細については、「 宣言された要素への参照」を参照してください。
例
Public Module thisModule
Sub Main()
Dim userName As String = InputBox("What is your name?")
MsgBox("User name is " & userName)
End Sub
' Insert variable, property, procedure, and event declarations.
End Module
こちらも参照ください
.NET