一次元配列をシートに入れる
一次元配列を、シートに入れる場合、一列に入れるか、一行に入れるか、選択できるといいですよね。
Private Sub 一次元配列をシートに入れる、テスト()
ReDim arr(1 To 3) As Variant
'配列の値を代入する
arr(1) = "Steve"
arr(2) = "Ryan"
arr(3) = "Andrew"
Dim outputArr As Variant
' 配列が1次元の場合、2次元に変換する。1行固定。
outputArr = Call_ArrayTo2DArray(arr)
Call array_to_sheet(outputArr, Worksheets("TEST2").Range("A1"))
' 配列が1次元の場合、2次元に変換する。1列固定。
outputArr = Call_ArrayTo2DArray(arr, "1列")
Call array_to_sheet(outputArr, Worksheets("TEST2").Range("A3"))
End Sub
このプロシージャは、一次元配列を、二次元に変換してから、シートに入れています。結果は、以下のようになります。
「Call_ArrayTo2DArray」は、以下になります。
'■一次元配列を二次元配列に変換するモジュール
' 二次元にしたとき、どちらの配列を、1で固定するか、選択できるように、変更
' 2番目の引数、空白で、行が1で固定。「1列」で、列が1で固定
Private Function Call_ArrayTo2DArray(arr As Variant, Optional 固定 As String = "") As Variant
Dim buf() As String
Dim i As Long
If 固定 = "" Then
' 1行に固定
ReDim buf(1 To 1, 1 To UBound(arr))
For i = 1 To UBound(arr)
buf(1, i) = arr(i)
Next i
Else
' 1列に固定
ReDim buf(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
buf(i, 1) = arr(i)
Next i
End If
Call_ArrayTo2DArray = buf
End Function
二つめの引数を省略すると、一行の配列に入る二次元になり、二つ目の引数に何か文字列を入れると、一列の配列に入る二次元になります。このファンクションは、「一次元配列を二次元配列に変換する」参考にしています。
「array_to_sheet」プロシージャーは、以下を参照してください。