VBAで配列を扱う場合、Array関数が便利です。Array関数は、複数の値を配列にまとめて返すために使用されます。この記事では、Array関数について説明し、使用例をいくつか紹介します。
Array関数とは
Array関数は、VBAで配列を作成するための関数です。Array関数を使用することで、一度に複数の値を配列にまとめて代入できます。次のように使用します。
1 2 |
Dim myArray As Variant myArray = Array(1, 2, 3, 4, 5) |
上記の例では、myArrayという変数に、1から5までの値を持つ配列が代入されます。
また、Array関数の引数には、任意の数の値を指定できます。引数として文字列、数値、真偽値などを渡すことができます。また、異なるデータ型の値を混在して渡すこともできます。
1 2 |
Dim myArray As Variant myArray = Array("apple", 2, True, "orange", 5.5) |
上記の例では、myArrayという変数に、文字列、数値、真偽値、小数点以下を持つ数値を持つ配列が代入されます。
VBAで2次元配列を作成する方法
2次元配列の作成方法 2次元配列は、1次元の配列を複数並べたものです。Excelの表と同じように、行と列の2次元のマトリックスを表現することができます。
2次元配列を作成するには、Array関数を2重に使います。1次元目に行、2次元目に列を指定します。
1 2 |
Dim myArray(1 To 3, 1 To 2) As Variant myArray = Array(Array(1, 2), Array(3, 4), Array(5, 6)) |
上記の例では、3行2列の2次元配列を作成しています。Array関数を2重に使用し、1次元目に行、2次元目に列を指定しています。また、2次元目のArray関数では、各行の要素を配列で表現しています。
2次元配列の要素にアクセスするには、行と列のインデックスを指定します。
1 2 3 4 5 |
Dim myArray(1 To 3, 1 To 2) As Variant myArray = Array(Array(1, 2), Array(3, 4), Array(5, 6)) ' 2行1列目の要素にアクセスする MsgBox myArray(2, 1) |
上記の例では、2行1列目の要素にアクセスして、MsgBox関数で表示しています。
配列以外の活用法
Array関数は、配列の初期化時に使うことが多いですが、他の関数の引数としても使用できます。次の例では、MsgBox関数の引数にArray関数を使用しています。
1 2 3 |
Dim myArray As Variant myArray = Array("apple", "banana", "orange") MsgBox Join(myArray, ", ") |
上記の例では、myArrayという変数に、3つの文字列を持つ配列が代入されます。そして、Join関数を使用して、配列の要素をカンマ区切りの文字列に変換し、MsgBox関数の引数に渡しています。
サンプルコード
配列の要素をフィルタリングする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Sub SampleCode() ' 配列の宣言と初期化 Dim numbers As Variant numbers = Array(1, 2, 3, 4, 5) ' 偶数の要素を格納するための配列と、要素数をカウントする変数の宣言 Dim evenNumbers As Variant Dim count As Integer ' 配列の要素を順番に調べて、偶数の要素を抽出する For i = LBound(numbers) To UBound(numbers) If numbers(i) Mod 2 = 0 Then ' 偶数の場合、要素数をカウントしてevenNumbers配列に格納する count = count + 1 ReDim Preserve evenNumbers(1 To count) evenNumbers(count) = numbers(i) End If Next i ' 偶数の要素をカンマ区切りで表示する MsgBox "偶数の要素: " & Join(evenNumbers, ", ") End Sub |
コメント