レコードを追加するデータ構造には向いていないようです。
配列の行数がどんどん増えていく時に、
ReDim Preserve文を使って
ループの中で行数の再定義を行おうとしても、
うまくいきませんでした。
1次元目のサイズは再定義できない
Option Base 1
Sub Macro1()
Dim 配列() As Variant
Dim i As Integer
For i = 1 To 3
ReDim Preserve 配列(i, 2)
配列(i, 1) = "A"
配列(i, 2) = "あ"
Next i
End Sub
i=2 のところでエラーが起こり、ループが止まってしまう。最後の次元のみを変更できる
次元が 2 つ以上ある動的配列の場合、最後の次元のサイズのみを変更でき、 その配列に格納されている値は保持されます次のように書くと、うまくいくようです。
For i = 1 To 3
ReDim Preserve 配列(2, i)
配列(1, i) = "A"
配列(2, i) = "あ"
Next i
検証コード引用:『2次元の動的配列ReDim について』(ろっしい)
