Type ステートメントを使う
Type ステートメントを使うと1つまたは複数の要素をユーザー定義型として1つにまとめて扱うことができます。
【構文】
[ Private | Public ] Type varname
element As element_type
[ …… ]
End Type
【項目の説明】
- varname ・・・ 宣言するユーザー定義型の名前
- element ・・・ ユーザー定義型の要素名
- element_type ・・・ ユーザー定義型の要素 element のデータ型
- [ …… ] ・・・ 要素が複数ある場合、element,element_typeを記述します。
Public を指定するとすべてのモジュールのどのプロシージャからも参照できます。一方、Private を指定すると宣言が行われたモジュール内でしか参照できなくなります。
ユーザー定義型の変数を宣言し使用する場合は、その変数名の後にピリオド(.)を入力するとその要素名のリストが表示されます。
ユーザー定義型の配列に対しては、For Each … Next ステートメントを使用することはできません。配列要素の繰り返しには、通常の For … Next ステートメントを使用します。
Type ステートメント使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
'-------------------------------------------------------------------- ' ユーザー定義型 '-------------------------------------------------------------------- Type myAddress ID As Integer Namae As String Birthday As Date Syumi As Variant End Type '-------------------------------------------------------------------- ' ユーザー定義型変数を使う '-------------------------------------------------------------------- Sub Sample() Dim myData(1 To 5) As myAddress Dim i As Long, str As String With ActiveWorkbook.Worksheets("Sheet1") For i = 1 To 5 myData(i).ID = .Cells(i + 1, 1).Value myData(i).Namae = .Cells(i + 1, 2).Value myData(i).Birthday = .Cells(i + 1, 3).Value myData(i).Syumi = Split(.Cells(i + 1, 4).Value, "、") Next i End With For i = 1 To 5 str = str & " " & myData(i).ID str = str & " " & myData(i).Namae str = str & " " & myData(i).Birthday str = str & " " & Join(myData(i).Syumi, ",") str = str & Chr(13) Next i MsgBox str End Sub |