Dim N(2 To 5) As Integer の様に N の変数を 2 から 5 まで指定することができる。
この場合、N(2), N(3), N(4), N(5) までの4個になる。
必ず To を記入する必要がある。
●任意のインデックス番号の定義
左がプログラムを実行した結果である。
二次元配列変数の定義は、Dim 変数名(行数 , 列数) As データ型 である。
だから、Dim RC(5, 4) As Integer は変数名を RC として、行数を 5 列数を 4 とし、データ型を
数値とする。
変数は、RC(0, 0) からRC(5, 4) まで存在する。
実際に、RC(0, 0) が存在するのか検証してみる。

Cells( i + 3, i2 - 4) .Value = RC( 0, 1 )
これは、i を 1 から 5 まで、i2 を 1 から 4 まで実行した後に、この構文を実行している。
だから、i は 6 で i2 は 5 になっている。
Cells(6+3, 5 - 4) .Value = RC(0, 1) は、Cells(9, 1) .Value = RC(0, 1) である。
A9 に 0 が記入されて、RC(0, 1) は 0であって、[エラー]ではない。

Cells( i + 3, i2 - 3) .Value = RC(1, 0)
Cells(6 + 3, 5 - 3) .Value = RC(1, 0) は、Cells(9, 2) .Value = RC(1, 0) である。
B9 に 0 が記入されて、RC(1, 0) は 0 であって、[エラー]ではない。

RC(0, 0) が存在することが証明された。
●二次元配列変数の定義
Option Base 1 と定義したら実際にN(0) は
無くなったかを検証するためにこのプログラム
を実行して、N(0) = 1 を実行すると、
[実行時エラー]が出た。
上限値は 5 だが、インデックス番号は 1 から
始まっていることが証明できた。
この例は、変数名を N とし、上限値を 5 として、N(5) とインデックス番号を、0 から 5 までの 6 個に
指定している。
特別な定義をしない限り、インデックス番号は 0 からになる。
N(1) = 2
N(2) = 3
N(3) = 4
N(4) = 5
N(5) = 6
と 1 から 5 までに数値を代入しているが、0 には数値を代入していない。だから N(0) が存在しているの
かどうか分からない。
Range("B" & N(0) + 8) .Value = 9 と実行して確かめてみると、N(0) は数値を代入していないので 0 で
ある。それに 8 加算すると 8 である。と言うことは、B8 に 9 を記入することになる。
実行結果は、B8 に 9 を記入しているから、N(0) が存在していることが証明された。
他は、同じように N(1) = 2 だから B2 に10 と順に記入している。

●インデックス番号を 1 から指定するには、Option Base 1 と上部に定義する。

●一次元配列変数の定義
 配列変数は、Dim で定義する。 Dim 変数名(上限値) As データ型
 上限値とは、インデックス番号の上限値のことで N(3) と指定すると、N(0),N(1),N(2),N(3) の4つの
 変数が使用できる。
 
基本的なマクロの習得
配列変数の使用方法


実際に使っているシステムの内容で解説
  EXCEL VBA 講座