VBAで多次元配列(のようなもの)*1を初期化子でまとめて初期化するには

C言語等で、多次元配列宣言時に初期化子を用いてまとめて初期化する場合、

int test={{1,2},{3,4}};

のようにすればよいわけですが…同様のことをVBAでやろうと調べてみたら、結構トリッキーなことをやらないと出来ないっぽいことが分かったのでメモ。

Option Explicit
Sub ComplexArrayTest()
    Dim test() As Variant
    Dim i As Long, j As Long, k As Long
    Dim result As String
    test = Array(Array(Array(1, 2), Array(3, 4)), Array(Array(5, 6, 7), Array(8, 9, 10)))
    For i = LBound(test) To UBound(test)
        For j = LBound(test(i)) To UBound(test(i))
            For k = LBound(test(i)(j)) To UBound(test(i)(j))
                result = result & "(" & i & "," & j & "," & k & ")=" & test(i)(j)(k) & vbCrLf
            Next k
        Next j
    Next i
    MsgBox result
End Sub

上記の様に記述すれば、多次元配列(のようなもの)を初期化子で初期化できるようです(Excel2003.Excel2007で動作確認)。真面目に読もうとすれば分かると思うのですが、トリッキーなことをやってます。良く見ると、配列の要素数も一定でなかったりと、割とフリーダムな作りになっています。
なお、配列(のようなもの)の型はVariant型しか使用できないようです*1。まあ「なぜこのコードが動くか」を考えれば自然に分かるとは思います。…きっと。(汗)

*1:少なくともこの使い方では。