【VBA/マクロ】配列の使い方・宣言方法

ExcelのVBA(マクロ)での配列の使い方や宣言方法についてまとめました。

【配列とは】使い方

配列(Array)とは、「データを一列に並べたもの」で、大量のデータを扱う場合によく用いられます。

「配列」の詳細についてはこちら
1 【配列とは】仕組み・変数との違い

VBAでは、「固定長配列」「動的配列」の2種類を宣言できます。

種類 説明 宣言例
固定長配列 要素数と次元数が固定された配列 Dim 配列名(添字の上限値) As データ型名
動的配列 要素数と次元数を途中で変更可能な配列 Dim 配列名() As データ型名

サンプルコード

サンプルプログラムのソースコードです。

Sub test()

    '文字列型の配列を宣言(要素数は3で固定)
    Dim member(2) As String
    
    '0番目要素に文字列を代入
    member(0) = "アベンジャー"
    
    '1番目要素に文字列を代入
    member(1) = "バゼット"
    
    '2番目要素に文字列を代入
    member(2) = "カレン"
    
    '1番目要素を取り出して表示'
    MsgBox member(1) 'メッセージボックスに「バゼット」と表示'

End Sub

「Dim member(2) As String」で固定長配列を宣言しています。
添字の最大値が「2」なので、要素番号0、1、2まで扱えます。
よって、要素数は3となります。

Array関数を使うと、次のようにコンパクトに配列に値をセットすることができます。

Sub test()

    '変数を宣言
    Dim member As Variant
    
    '変数の値に配列をセット
    member = Array("アベンジャー", "バゼット", "カレン")
    
    '1番目要素を取り出して表示'
    MsgBox member(1) 'メッセージボックスに「バゼット」と表示'

End Sub

Variant型変数の値として、配列を格納することができます。
その場合、Array関数を使って配列要素をまとめて指定することが可能です。
(※Variant型の配列ではなく、配列を値として持つバリアント型変数であることに注意)

【2次元配列】使い方

通常の配列は、データを1列に並べるため、1次元配列です。
それに対して、2次元配列は縦横の2次元で配列を考えます。
2次元で配列を考えると、表のデータなど、2次元のデータを扱う際には便利です。

VBAで2次元配列を宣言するには次のように記述します。

Dim 配列名(添字の上限値1, 添字の上限値2, ...) As データ型名
パラメータ 説明
添字の上限値1 縦の要素数
添字の上限値2 横の要素数

サンプルコード

サンプルプログラムのソースコードです。

Sub test()
    '文字列型の配列を宣言(要素数は3で固定)
    Dim member(0, 1) As String
    
    '要素(0, 0)に文字列を代入
    member(0, 0) = "アベンジャー"
    
    '要素(0, 1)に文字列を代入
    member(0, 1) = "バゼット"
    
    
    '1番目要素を取り出して表示'
    MsgBox member(0, 1) 'メッセージボックスに「バゼット」と表示'

End Sub
関連記事
1 【VBA】2次元配列の使い方・宣言方法【Excelマクロ】
関連記事
1 【Excel/VBA】マクロ入門
関連記事