VBAオジサンのらくがき帳

配列の使い方の基本

2021-09-19 00:00:00

VBAの配列の基本的な使い方をご紹介します。配列の宣言にはDimステートメントで変数に括弧()をつけて行います。固定サイズの配列を作るときはカッコ内に配列の長さを指定します。可変サイズの場合はReDimステートメントを使って長さの指定をします。宣言の仕方によって動き方が違うので注意が必要です。

配列の宣言、値の設定、値の取得のサンプル

Dim a(2) As Long 'a(0)からa(2)の3つの数値が入る配列が作られます。
a(0) = 100
a(1) = 200
a(2) = 300
Range("A1").value = a(0)

ReDimを使って配列のサイズを指定する

Dim a() As Long
ReDim a(1) 'a(0)からa(1)の配列ができる
a(0) = 1
a(1) = 2
ReDim a(2) 'a(0)からa(2)の配列ができる ※a(0)からa(1)の値はリセットされる
a(2) = 3
ReDim Preserve a(2) 'a(0)からa(2)の配列ができる ※a(0)からa(1)の値はそのまま

変数をVariantで宣言している場合にはReDimで配列に入る変数の型を指定することができます。

Dim a As Variant
ReDim a(2) As Long

配列の宣言の際にはインデックスの下限を設定することも可能です。1から始めるときには下のように宣言します。(Option Baseステートメントで指定することも可能。)

Dim a(1 To 3) As Long

インデックスの上限下限を扱うときにはLBound、UBound関数を使うと便利です。下のサンプルでは配列aのすべての値を100に設定しています。

Dim a(10) As Long
Dim j As Long
For j = LBound(a) To UBound(a)
    a(j) = 100
Next j

2次元配列の宣言は下のように行います。

Dim a(10, 10) As Long '11行、11列のサイズの配列ができる