本ページには広告が含まれています。

ExcelVBA Array関数 Variantに配列を格納する

ExcelVBA Array関数 Variantに配列を格納する

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_Sample01 実行で表示されるイミディエイトの画像

配列要素のリストをカンマ (,) 区切りで指定するだけです。

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

実行時のイミディエイト画像がこちらです。

Array_Sample02 実行で表示されるイミディエイトの画像

2次元配列が出来ていますね。

ただし、お気づきのように、普通の2次元配列なら arr(1.1) で要素を取得しますが、Array 関数でこのように作成した場合は arr(1)(1) のように指定する必要があります。

おわりに

Excel VBA Array 関数は、複数の値を一度にまとめて配列として格納するために使用されます。VBAの中で配列を簡単に生成するための便利な関数で、配列が格納されたバリアント型の値を返します。

配列にデータを代入する場合、通常はインデックス番号を指定して1つ1つ代入します。しかし、Array 関数なら、バリアント型の変数を用意して、配列の中身をまとめて代入することが可能です。

配列に関しては、過去の記事でもたくさん取り上げていますので以下を参照いただければ幸いです。

以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;

VBAの関数一覧はこちらからご参照ください。

スポンサーリンク
スポンサーリンク

VBAサンプルファイルダウンロードページのご案内

このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。

ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!