-
∨目次
- 構造体の定義
- 構造体の操作
- 構造体の配列
VBA 構造体
はじめに
Excel VBA マクロで構造体(Type)の使い方を紹介します。
複数のフィールド (変数) を定義できるので、それぞれの値に関連性ができます。
関数やコンストラクタは作成できません。
-
目次
- 構造体の定義
- 構造体の操作
- 構造体の配列
構造体の定義
Private Type 構造体名のようにして宣言します。他の関数より上に定義できます。Public で定義できるのは標準モジュールのみです。
構造体の中にフィールド (変数) を定義します。
Private Type Point
X As Integer
Y As Integer
End Type
' Public は標準モジュールでのみ定義できる
Public Type Size
Height As Integer
Width As Integer
End Type
構造体の操作
構造体.フィールドのようにして各フィールドの値を取得または設定できます。
' 初期化と設定
Dim p As Point
p.X = 10
p.Y = 20
' 取得
Dim i As Integer
i = p.X
Debug.Print (i) ' 10
構造体を同じ型の別の変数に入れることでコピーできます。
Dim p1 As Point
p1.X = 10
p1.Y = 20
Dim p2 As Point
p2 = p1 ' コピーする
Debug.Print (p2.X) ' 10
Debug.Print (p2.Y) ' 20
VBA の構造体にはコンストラクタはありません。
構造体の配列
構造体を配列にするのに特別なことは一切ありません。変数を配列で宣言するのとまったく同じです。
構造体を配列化
Dim p(3) As Point
p(0).X = 10
フィールドを配列化
Private Type Point
X(3) As Integer
Y() As Integer
End Type
Sub Tips
Dim p As Point
p.X(0) = 10
ReDim Preserve p.Y(5)
p.Y(0) = 20
End Sub
テーブルのデータを取得するときなど、多くのデータを操作するときに構造体が役に立ちます。構造体をレコード、フィールドを列として考え、構造体を配列にすると複数のレコードを受け取れます。
スポンサーリンク