'ユーザ定義型と呼ぶらしいが、ここでは構造体と呼ぶことにする。 Type Dt '構造体の名称 name As String '名前 num As Integer '数値データ End Type
' 構造体(変数)の受渡の見本。構造体を関数の引数に渡す。 '※下記のプロシージャ内にカーソルをおいてF5キーを押すと実行される。 Sub test() Dim dtArray() As Dt '構造体の配列 Dim lastrow As Long: lastrow = Range("A65536").End(xlUp).Row Dim ii As Integer
'+--- 構造体の配列に読み出す ----------+ For ii = 1 To lastrow ReDim Preserve dtArray(ii) dtArray(ii).name = Cells(ii, 1).Value dtArray(ii).num = Cells(ii, 2).Value
Next ii
Dim tmpArray() As Dt tmpArray = hyoji(dtArray())
'+--- 関数の戻り値を表示する ----------+ Debug.Print "これは関数の戻り値" For ii = 1 To UBound(tmpArray) Debug.Print tmpArray(ii).name, tmpArray(ii).num '+--- シートにもここで追加される -----+ Cells(ii, 1).Value = tmpArray(ii).name Cells(ii, 2).Value = tmpArray(ii).num Next ii
End Sub
' 構造体(変数)を引数として受け取り、戻り値に追加してセットする
Function hyoji(ByRef dtArray() As Dt) As Dt() Dim ii As Integer Dim kk As Integer
Debug.Print "これは関数内" kk = UBound(dtArray) For ii = 1 To kk Debug.Print dtArray(ii).name, dtArray(ii).num Next ii