VBの配列の大きさ

配列を大きさを初期化するときって配列の要素数を指定するものだと思ってた(知っている言語がすべてそうだった)が VBでの配列の初期化は配列の最終index値を指定するらしい。

Public Sub Main()
    Dim index As Integer

    '配列の大きさをDimやReDimで指定するが、指定する数値はindex値。つまり配列の要素数はindex+1となる。
    Dim ary(3) As String 'index=0, 1, 2, 3となり配列の要素数は4となる。
    ary(0) = "A"
    ary(1) = "B"
    ary(2) = "C"
    ary(3) = "D"
   'index最大値までループ
    For index = 0 To UBound(ary)
        MsgBox (ary(index))
    Next
End Sub

私の思い込みもよくないが、ネット上のVBリファレンス系サイトの例も同じような思い込みしていて 間違っているような気がする。

気をつけるべし(危うくバグるところだった)。