一次元配列をシートに入れる

一次元配列を、シートに入れる場合、一列に入れるか、一行に入れるか、選択できるといいですよね。

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」プロシージャーは、以下を参照してください。

本サイトに関連ある記事一覧

Follow me!

コメントを残す