VBAでは、1つの変数に、異なる複数のデータ型を内包することができます。 こうした変数を「ユーザー定義型」と呼びます。 C言語などの「構造体」と同じ考え方です。 ユーザー定義型は、複数のデータ型を1つにまとめて、ユーザーが独自の型を定義する機能です。 たとえばVBA標準の「文字列型」は文字列だけを格納するための型ですし、「整数型」は整数しか格納できない専用の型です。 それらVBAが標準で持っているデータ型を寄せ集めて、独自の型として定義できます。 ここでは、文字列と数値を格納できるユーザー定義型を作ってみましょう。 ユーザー定義型は、どんな構造にするかをTypeステートメントで指定します。 記述するのは宣言セクションです。Type myType Name As String Age As Long End Type Sub Sample1() Dim UserData As myType UserData.Name = "tanaka" UserData.Age = 39 MsgBox UserData.Name & vbCrLf & UserData.Age End Subプロシージャの中で宣言している変数UserDataにユーザー定義型を指定しています。 ここで宣言したユーザー定義型「myType」には、文字列を格納するNameと数値を格納するAgeを定義しています。 変数UserDataは、NameとAgeという小部屋を2つ持っているようなイメージです。 こうしたユーザー定義型が便利なのは、定型のデータ群を扱うときです。 セル範囲A1:A5に名前、セル範囲B1:B5に年齢が入力されているとき、この5人分のデータは次のように操作できます。Sub Sampl2() Dim i As Long, cnt As Long, UserData(5) As myType For i = 1 To 5 UserData(i).Name = Cells(i, 1) UserData(i).Age = Cells(i, 2) Next i cnt = Val(InputBox("何人目のデータを表示しますか(1〜5)")) If cnt < 1 Or 5 < cnt Then Exit Sub MsgBox UserData(cnt).Name & vbCrLf & UserData(cnt).Age End Sub●補足● 宣言セクションとは、モジュールのコードウィンドウで、最上部のプロシージャより上の領域です。