変数については、以前に若干触れていますから省略しますが、今回はその変数の配列を利用します。
まず、配列変数の宣言方法です。
Dim A(9) As String
この宣言では、「A」という名前の10個の文字列型変数の配列が用意されます。
「9」なのに10個なのは、インデックスはゼロ始まりだからです。「1」始まりの10個ならば、
Dim A(1 To 10) As String
というように宣言します。
この宣言は「静的配列」ですから、このまま値をセットしたり、参照したりできます。
A(1) = "hogehoge"
A(2) = "hugehuge"
CSV形式テキストファイルからデータを読み込む場合で、カラム数(カンマで区切られた要素数)が固定であればこの方法が利用できます。
では、要素数がその場にならないと決まらない場合はどうでしょうか。
この要素数自体を変数にしてしまいます。
Dim A() As String
Dim IX As Long
IX = 100
ReDim A(IX)
この「動的配列」はDimステートメントだけでは利用できません。利用するにはReDimステートメントでの初期化が必要となります。
上では「IX = 100」としましたが、このIXがプロシージャが動く段階でセットされるようになっていれば、配列に収容済みの値を保持させたまま、自在に要素数を増やすことができるわけです。
さらに、読み込んでみないと要素数が決まらない上、その読み込みを行なう場合の各要素を配列に入れなければならない場合があります。
あらかじめ最大値を決めておいて、ReDimステートメントで初期化してしまう場合もありますが、全く不定な場合は次のようにします。
Dim A() As String
Dim IX As Long
IX = 0
Do While IX <= 99
ReDim Preserve A(IX)
A(IX) = "hogehoge"
IX = IX + 1
Loop
PreserveキーワードをReDimステートメントに使うと、配列は初期化されずに要素数だけが変更されます。
では、次のページに進んで、これを元にセル範囲と配列変数とのやりとりを行なってみましょう。