[VBA]動的配列では行追加のように拡大できない ~ Redim Preserve

2次元配列は、Rangeオブジェクトと相性がいいのですが、
レコードを追加するデータ構造には向いていないようです。



配列の行数がどんどん増えていく時に、
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 について』(ろっしい)