言語で用意されている構文を使う他に、Array.CreateInstanceメソッドを使うことで任意の型・任意の長さの配列を作成することが出来ます。 このメソッドの戻り値はArrayクラスとなるので、必要に応じて適切な配列型にキャストしてから使います。 このメソッドで作成した配列は、通常の構文で作成した配列と何ら変わりありません。

また、Array.GetValueメソッドおよびArray.SetValueメソッドを使うことで、配列の各要素にアクセスするための構文(インデクサ)を使用せずに配列に値を取得・設定することが出来ます。 このメソッドは配列の型・次元がどのようなものでも値を取得・設定することが出来ます。

Arrayクラスのメソッドを使って配列の作成と要素の取得・設定を行う (CreateInstance, GetValue, SetValue)
Imports System

Class Sample
  Shared Sub Main()
    ' 型がIntegerで長さが5の配列を作成
    Dim arr1() As Integer = DirectCast(Array.CreateInstance(GetType(Integer), 5), Integer())

    arr1(0) = 0
    arr1(1) = 1
    arr1(2) = 2
    arr1(3) = 3
    arr1(4) = 4

    For Each elem As Integer In arr1
      Console.Write("{0}, ", elem)
    Next
    Console.WriteLine()
    Console.WriteLine()

    ' 型がStringで長さが3の配列を作成
    Dim arr2 As Array = Array.CreateInstance(GetType(String), 3)

    ' SetValueメソッドを使って値を設定
    arr2.SetValue("Alice", 0)   ' 配列のインデックス0に文字列"Alice"を設定
    arr2.SetValue("Bob", 1)     ' 配列のインデックス1に文字列"Bob"を設定
    arr2.SetValue("Charlie", 2) ' 配列のインデックス2に文字列"Charlie"を設定

    ' GetValueメソッドを使って値を取得
    For i As Integer = 0 To arr2.Length - 1
      Console.WriteLine("arr2({0}) = {1}", i, arr2.GetValue(i))
    Next
  End Sub
End Class
実行結果
0, 1, 2, 3, 4, 

arr2(0) = Alice
arr2(1) = Bob
arr2(2) = Charlie

GetValueメソッド・SetValueメソッドは要素単位で値の取得・設定を行います。 バイト単位で配列内の値を取得・設定したい場合はBuffer.GetByteメソッドBuffer.SetByteメソッドを使うことができます。 詳しくはバイト列操作 §.バイト単位での値の設定・取得 (GetByteメソッド・SetByteメソッド)を参照してください。