Digital_Neko

フリーランスプログラマー

構造体の作り方 Excel-VBA

今回は構造体の作り方です。Typeステートメントを使用してユーザー定義型を作成します。構造体は宣言セクション(モジュールの先頭から最初のマクロまでの領域)に記述します。サンプルとして、会社に所属している社員を表す構造体を定義してみます。

Option Base 1

Public Type Syain
CompanyName As String
id As Integer
SyainName As String
End Type

Sub test()

Dim Person(2) As Syain ‘構造体を定義
Person(1).CompanyName = ” 会社”
Person(1).id = 12345
Person(1).SyainName = “Tanaka”

Person(2).CompanyName = ” 会社”
Person(2).id = 2345
Person(2).SyainName = “Suzuki”

Dim i As Long

For i = 1 To 2
Cells(i, 1).Value = Person(i).CompanyName
Cells(i, 2).Value = Person(i).id
Cells(i, 3).Value = Person(i).SyainName
Next i

End Sub

サンプルプログラムでは、最初に会社の社員を表す構造体を定義します。構造体はTypeとEndTypeで括ります。
構造体を、全てのモジュールのマクロで使用できるようにするため、今回はPublic ステートメントを使っています。マクロ内で使うためには、Dim Person(2) As Syainとして構造体を定義して使います。
サンプルプログラムでは、要素数2の配列(Option Base 1 で配列のインデックス番号の下限を1)として宣言しています。ユーザー定義型の変数を使用するには、定義した構造体と変数を、Person(1).CompanyNameのように記述し変数に値を格納します。

サンプルプログラムでは、最後にループで変数に格納した値をシートに展開しています。

今回の例以外では、請求書をまとめたデータがあるなら、請求書構造体を作成して使用するなどの利用方法があります。