Type ステートメント
モジュール レベルで、1 つ以上の要素を含むユーザー定義データ型を定義するために使用されます。
構文
[ Private | パブリック ] 型varname
-
elementname [ ( [ 添字 ] ) ] 型として
[ elementname [ ( [ 添字 ] ) ] 型として]
. . .
Type ステートメントの構文には、次の指定項目があります。
指定項目 | 説明 |
---|---|
Public | 省略可能。 すべてのプロジェクトのすべてのモジュールのすべてのプロシージャで使用できるユーザー定義型を宣言するために使用されます。 |
Private | 省略可能。 ユーザー定義型が宣言されるモジュール内でのみ使用できるユーザー定義型を宣言するために使用されます。 |
varname | 必須です。 ユーザー定義型の名前。は、標準 変数 の名前付け規則に従います。 |
elementname | 必須。 ユーザー定義型の要素の名前です。 要素名の場合も、キーワードが使用できる点を除いて、変数の名前付け規則に従った名前を指定します。 |
subscripts | lower で明示的に指定していないときには、配列の下限が Option Base ステートメントによって制御されます。 Option Base ステートメントが存在しない場合、下限は 0 になります。 |
type | 必須です。 要素のデータ型。は、 Byte、 Boolean、 Integer、 Long、 Currency、 Single、 Double、 Decimal (現在サポートされていません)、 Date、 String (可変長文字列の場合)、 Stringlength (固定長文字列の場合)、 Object、 Variant、別のユーザー定義型、または オブジェクト型のいずれかです。 |
解説
Type ステートメントは、モジュール レベルでのみ使用できます。 Type ステートメントを使用してユーザー定義型を宣言した後、宣言のスコープ内の任意の場所でその型の変数を宣言できます。 Dim、Private、Public、ReDim、または Static を使用して、ユーザー定義型の変数を宣言します。
標準モジュールおよびクラス モジュールでは、ユーザー定義型が既定でパブリックになります。 この可視性は、プライベート キーワード (keyword)を使用して変更できます。
Type...End Type ブロックでは、行番号と行ラベルが許可されていません。
ユーザー定義型は、データ レコードで頻繁に使用されます。多くの場合、データ レコードは異なるデータ型の多数の関連要素で構成されます。
ユーザー定義型の固定サイズ配列の使用例を次に示します。
Type StateData
CityCode (1 To 100) As Integer ' Declare a static array.
County As String * 30
End Type
Dim Washington(1 To 100) As StateData
前の例では、 StateData
には静的配列が CityCode
含まれており、レコード Washington
の構造 StateData
は と同じです。
ユーザー定義型内で固定サイズ配列を宣言する場合は、そのディメンションを変数ではなく数値リテラルまたは数値定数で宣言する必要があります。
例
この例では、Type ステートメントを使用して、ユーザー定義のデータ型を宣言しています。 Type ステートメントは、モジュール レベルでのみ使用されます。 クラス モジュールに表示される場合は、Type ステートメントの前にキーワード Private を付ける必要があります。
Type EmployeeRecord ' Create user-defined type.
ID As Integer ' Define elements of data type.
Name As String * 20
Address As String * 30
Phone As Long
HireDate As Date
End Type
Sub CreateRecord()
Dim MyRecord As EmployeeRecord ' Declare variable.
' Assignment to EmployeeRecord variable must occur in a procedure.
MyRecord.ID = 12003 ' Assign a value to an element.
End Sub
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。