配列は固定長であり、配列を作成するときに格納できる要素数が決定されます。 配列の長さ(格納できる要素数)を超えるインデックスを指定すると実行時に例外IndexOutOfRangeExceptionがスローされます。 配列が自動的に拡張されるといったことは行われません。

配列の長さを超えるインデックスを参照しようとした場合
Imports System

Class Sample
  Shared Sub Main()
    ' 長さが3(インデックスの最大値が2)の文字列型配列を作成
    Dim users(2) As String

    users(2) = "Charlie"  ' 配列の2番目(最後)の要素として"Charlie"を設定 (例外がスローされる)
    users(3) = "Dave"     ' 配列の3番目(最後の一つ後)の要素として"Dave"を設定 (インデックスが範囲外のため例外がスローされる)
  End Sub
End Class
実行結果
ハンドルされていない例外: System.IndexOutOfRangeException: インデックスが配列の境界外です。
   場所 Sample.Main()

つまり、JavaScript等の言語では認められている次のような操作は、.NETにおける配列ではサポートされません。

JavaScript等では認められているこのような操作を行うことはできない
// 配列を作成
var users = new Array();

users[2] = "Charlie"; // 配列の2番目に"Charlie"を設定 (ここでarr.length = 3となる)
users[3] = "Dave";    // 配列の3番目に"Dave"を設定 (ここでarr.length = 4となる)

可変長の配列が必要な場合は、ジェネリックコレクションクラスの一つであるListクラスを使うことができます。 ただし、Listクラスでも上記のように途中のインデックスに要素を追加するようなことはできません。

既存の配列を拡張する必要がある場合はArray.Resizeメソッドを使うことができます。