As to your problem
[vba]
Public Sub test()
Dim arr() As Integer
arr = create2DArray()
Debug.Print IsArray(arr) ' Returns true
Debug.Print IsArray(Application.Index(arr, 2, 0)) ' Returns true
'Type mismatch: array of user definer type expected??
Debug.Print (arrayToString(Application.Index(arr, 2, 0)))
End Sub
'This takes a string and returns a string reprenstation delimited by commas e.g [1,2,3]
Private Function arrayToString(ByRef arr As Variant) As String
Dim i As Integer
Dim str As String
str = "["
For i = LBound(arr) To UBound(arr)
str = str & arr(i) & ","
Next i
arrayToString = Left(str, Len(str) - 1) + "]"
End Function
'creates and returns a 2d integer array
Private Function create2DArray() As Integer()
Dim arr(0 To 10, 0 To 10) As Integer
Dim i As Integer
Dim j As Integer
For i = LBound(arr) To UBound(arr)
For j = LBound(arr) To UBound(arr)
arr(i, j) = i * j
Next j
Next i
create2DArray = arr
End Function
[/vba]