レコードを追加するデータ構造には向いていないようです。
配列の行数がどんどん増えていく時に、
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 Subi=2 のところでエラーが起こり、ループが止まってしまう。
最後の次元のみを変更できる
次元が 2 つ以上ある動的配列の場合、最後の次元のサイズのみを変更でき、 その配列に格納されている値は保持されます次のように書くと、うまくいくようです。
For i = 1 To 3 ReDim Preserve 配列(2, i) 配列(1, i) = "A" 配列(2, i) = "あ" Next i検証コード引用:『2次元の動的配列ReDim について』(ろっしい)