vba二次元配列訂正再掲

Public Function theFailureTest()
Dim Ary() As String
ReDim Ary(0, 3)
Ary(0, 0) = “a”
Ary(0, 1) = “b”
Ary(0, 2) = “c”
ReDim Preserve Ary(1, 3)
Ary(1, 0) = “d”
Ary(1, 1) = “e”
Ary(1, 2) = “f”
Debug.Print UBound(Ary, 1)
Debug.Print UBound(Ary, 2) 
End Function

これはダメな例
なぜダメかはあとで・・
次に正しい例
Public Function theSuccessTest()
Dim Ary() As String
ReDim Ary(3, 0)
Ary(0, 0) = “a”
Ary(1, 0) = “b”
Ary(2, 0) = “c”
ReDim Preserve Ary(3, 1)
Ary(0, 1) = “d”
Ary(1, 1) = “e”
Ary(2, 1) = “f”
Debug.Print UBound(Ary, 1)
Debug.Print UBound(Ary, 2)
End Function
拡張できるのは最後の次元だけなので添字の変数は2番目に置く
理由は難しそうだが

に書いてあります