Array 関数 解説(Excel VBA)

Excel VBA: Array 関数の解説と使用例

Excel VBAにおけるArray関数は、一連の値から配列を作成するための関数です。この関数を使うことで、複数の要素を持つ配列を簡単に作成することができます。

構文

Array(arg1, arg2, ..., argn)

Array関数では、引数として配列に含める要素を指定します。引数はカンマで区切り、任意の数だけ指定することが可能です。各引数は配列の各要素として保存されます。

サンプルコード1

以下に、Array関数の使用例を示します。


    Sub CreateArray()
        ' Array関数で配列を作成
        Dim myArray As Variant
        myArray = Array("Apple", "Banana", "Cherry")
        
        ' 配列の内容を表示
        Dim i As Integer
        For i = LBound(myArray) To UBound(myArray)
            Debug.Print myArray(i)
        Next i
    End Sub
    

このコードでは、まずArray関数を使用して3つの要素を持つ配列を作成します。その後、ForループとDebug.Printステートメントを使用して配列の各要素を出力します。

サンプルコード2

以下のサンプルコードは、複数の配列を結合して新たな配列を作成する例です。

Arrayを結合する場合は、VBAのループ構造(For…Next文やDo…Loop文など)を使用して各配列の要素を新しい配列に一つずつ追加するなどの方法をとる必要があります。以下はその一例です。

Sub CombineArrays()
    Dim array1 As Variant
    Dim array2 As Variant
    Dim combinedArray() As Variant
    Dim i As Long, j As Long

    ' 配列を定義します
    array1 = Array("Apple", "Banana", "Cherry")
    array2 = Array("Dog", "Elephant", "Frog")

    ' 合成配列のサイズを設定します
    ReDim combinedArray(LBound(array1) To UBound(array1) + UBound(array2) + 1)

    ' array1の要素をcombinedArrayにコピーします
    For i = LBound(array1) To UBound(array1)
        combinedArray(i) = array1(i)
    Next i

    ' array2の要素をcombinedArrayにコピーします
    For j = LBound(array2) To UBound(array2)
        combinedArray(i + j) = array2(j)
    Next j

    ' 結果を表示します
    For i = LBound(combinedArray) To UBound(combinedArray)
        Debug.Print combinedArray(i)
    Next i

End Sub

このスクリプトは、2つの配列を結合し、結果を イミディエイトウィンドウ に表示します。配列は0ベースでインデックス付けされていることに注意してください。

注意点

Array関数で作成された配列は、0から始まる基底(0ベース)の配列です。つまり、最初の要素はインデックス0で参照されます。配列の要素にアクセスする際にはこの点に注意が必要です。