宣言 Typeステートメントユーザー定義のデータ型宣言

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。


'1 つまたは複数の要素を持つユーザー定義のデータ型 (ユーザー定義型) を宣言します。モジュール レベルで使います。
'
'構文
'
'[Private | Public] Type varname
'elementname [([subscripts])] As type
'[elementname [([subscripts])] As type]
'. . .
'
'End Type

'Type ステートメントの構文は、次の指定項目から構成されます。
'
'指定項目
'Public
'Private
'varname
'elementname
'subscripts
'
'
'type
'
'解説
'
'Type ステートメントは、モジュール レベルでのみ使用できます。Type ステートメントでユーザー定義型を宣言すると、その宣言の適用範囲内であれば、どこからでもその型の変数を宣言できるようになります。ユーザー定義型の変数の宣言には、DimPrivatePublic、ReDim、または Static のいずれかのステートメントを使います。
'
'標準モジュールでは、ユーザー定義型は既定でパブリックになり、その適用範囲はキーワード Public で変更できます。クラス モジュールでは、ユーザー定義型は常にプライベートになり、適用範囲はキーワード Public では変更できません。
'
'Type...End Type ブロック内では、行番号と行ラベルは使えません。
'
'ユーザー定義型は、データ型の異なる多数の関連する要素で構成されるデータ レコードでよく使われます。
'
'次の例は、ユーザー定義型の中に固定サイズの配列を含めたものです。

Type StateData
    CityCode(1 To 100) As Integer     ' サイズ固定型 (静的) 配列を宣言します。
    County As String * 30
End Type

Dim Washington(1 To 100) As StateData

'この例では、StateData には固定サイズの配列 CityCode が含まれており、レコード Washington は StateData と同じ構造になっています。
'
'ユーザー定義型の中で固定サイズの配列を宣言する場合は、変数ではなく数値リテラルまたは数値定数を使って、次元を宣言する必要があります。
'
'Type ステートメントの使用例
'
'次の例では、Type ステートメントを使って、ユーザー定義のデータ型を定義します。Type ステートメントは、モジュール レベルでのみ使用します。クラス モジュールで使用する場合は、Type ステートメントの直前にキーワード Private を付ける必要があります。

Type EmployeeRecord        ' ユーザー定義型を作成します。
    ID As Integer            ' データ型の要素を定義します。
    Name As String * 20
    Address As String * 30
    Phone As Long
    HireDate As Date
End Type
Sub CreateRecord()
    Dim MyRecord As EmployeeRecord    ' 変数を宣言します。

    ' 変数 EmployeeRecord への代入は、
    ' プロシージャ内に記述しなければなりません。
    MyRecord.ID = 12003            ' 要素に値を代入します。
End Sub

 

2000年01月01日|[VBサンプルコード]:[宣言]