Excel VBAの「Array 関数」について解説します。
Array 関数とは
Excel VBA の Array 関数は、複数の値を一度にまとめて配列として格納するために使用されます。VBAの中で配列を簡単に生成することができる便利な関数です。
Array 関数で作成できる配列は、一次元配列(単一の列または行で構成された基本的な配列)です。配列要素には様々なデータを格納できるので、要素に Array 関数を使うことで二次元配列をつくることも可能です。
Array 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。
Array 関数(Visual Basic for Applications リファレンス)
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。
構文
Array(arglist)
引数
引数 | 説明 |
---|---|
arglist | 【省略可能】配列要素のリストをカンマ (,) 区切りで指定します |
※ 引数を指定しなかった場合は長さ 0 の配列が作成されます。
戻り値
戻り値 | 説明 |
---|---|
バリアント型配列 (Variant) | 要素リストを格納したバリアント型の配列を返します |
※ 戻り値を受け取れる変数は通常のバリアント型 または バリアント型の(初期化されていない)動的配列です。
※ Array 関数が返す配列のインデックス最小値は 0 ですが Option Baseで変更できます。
※ Variant 以外の型で受けようとした場合、型不一致エラー (エラー 13) が発生します。
解説(使用例)
Array 関数を使用すれば簡単に配列を作成できます。サンプルで確認していきましょう。
Array関数サンプル1 (簡単な1次元配列の作成例)
まずは基本的な使用例で、一次元配列を作成して変数に代入し、その中身を確認してみましょう。
'■Array関数サンプル1 (簡単な1次元配列の作成例)
Sub Array_Sample01()
Dim arr As Variant
'▼配列をArray関数で作成
arr = Array(10, 20, 30, 40, 50)
'▼配列 Arr の中身を出力する
Dim i As Long
Debug.Print "arr の中身は次のとおり"
For i = LBound(arr) To UBound(arr)
Debug.Print "arr(" & i&; ") = " & arr(i)
Next
End Sub
実行時のイミディエイト画像がこちらです。
配列要素のリストをカンマ (,) 区切りで指定するだけです。
Array 関数の要素リストの各要素は基本的なデータ型(例えば、数値、文字列、ブール値)に適しています。ユーザー定義型やその他の複雑なデータ型、オブジェクトそのものや Nul lなどは適切ではありません。
Array関数サンプル2 (2次元配列の作成例)
次のサンプルは、Array 関数で2次元配列が作成できる例です。
引数の要素リストに Array 関数の配列を含めて2次元にしています。
'■Array関数サンプル2 (2次元配列の作成例)
Sub Array_Sample02()
Dim arr As Variant
'▼2次元配列をArray関数だけで作成
arr = Array(Array(10, 20, 30), _
Array(40, 50, 60))
'▼2次元配列 Arr の中身を出力する
Dim i As Long, j As Long
Debug.Print "2次元配列 arr の中身は次のとおり"
For i = LBound(arr) To UBound(arr)
For j = LBound(arr(i)) To UBound(arr(i))
Debug.Print "arr(" & i&; ")(" & j&; ") = "; arr(i)(j)
Next
Next
End Sub
実行時のイミディエイト画像がこちらです。
2次元配列が出来ていますね。
ただし、お気づきのように、普通の2次元配列なら arr(1.1) で要素を取得しますが、Array 関数でこのように作成した場合は arr(1)(1) のように指定する必要があります。
おわりに
VBAの関数一覧はこちらからご参照ください。
VBAサンプルファイルダウンロードページのご案内
このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。
ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!
Excel VBA Array 関数は、複数の値を一度にまとめて配列として格納するために使用されます。VBAの中で配列を簡単に生成するための便利な関数で、配列が格納されたバリアント型の値を返します。
配列にデータを代入する場合、通常はインデックス番号を指定して1つ1つ代入します。しかし、Array 関数なら、バリアント型の変数を用意して、配列の中身をまとめて代入することが可能です。
配列に関しては、過去の記事でもたくさん取り上げていますので以下を参照いただければ幸いです。
以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;