Type ステートメント

モジュール レベルで、1 つ以上の要素を含むユーザー定義データ型を定義するために使用されます。

構文

[ Private | パブリック ] varname

    elementname [ ( [ 添字 ] ) ] 型として
    [ elementname [ ( [ 添字 ] ) ] 型として]
    . . .
End Type

Type ステートメントの構文には、次の指定項目があります。

指定項目 説明
Public 省略可能。 すべてのプロジェクトのすべてのモジュールのすべてのプロシージャで使用できるユーザー定義型を宣言するために使用されます。
Private 省略可能。 ユーザー定義型が宣言されるモジュール内でのみ使用できるユーザー定義型を宣言するために使用されます。
varname 必須です。 ユーザー定義型の名前。は、標準 変数 の名前付け規則に従います。
elementname 必須。 ユーザー定義型の要素の名前です。 要素名の場合も、キーワードが使用できる点を除いて、変数の名前付け規則に従った名前を指定します。
subscripts lower で明示的に指定していないときには、配列の下限が Option Base ステートメントによって制御されます。 Option Base ステートメントが存在しない場合、下限は 0 になります。
type 必須です。 要素のデータ型。は、 ByteBooleanIntegerLongCurrencySingleDoubleDecimal (現在サポートされていません)、 DateString (可変長文字列の場合)、 Stringlength (固定長文字列の場合)、 ObjectVariant、別のユーザー定義型、または オブジェクト型のいずれかです。

解説

Type ステートメントは、モジュール レベルでのみ使用できます。 Type ステートメントを使用してユーザー定義型を宣言した後、宣言のスコープ内の任意の場所でその型の変数を宣言できます。 DimPrivatePublicReDim、または 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 のサポートおよびフィードバックを参照してください。