RsOfT:
Visual Basic utiliza como Array's una estructura de datos conocida como SafeArray. En esta se especifican el número de dimensiones (o columnas, como tú las llamas), características, longitud de cada elemento... Revisa la documentación del SDK.
El caso es que el primer elemento de la estructura SafeArray contiene el número de dimensiones del array en un integer. Entonces, con la dirección del SafeArray y el método RtlMoveMemory de la API, fácilmente obtendrás este dato y otros en caso de que te sean necesarios.
Código:
Option Explicit
Private Declare Sub RtlMoveMemory Lib "kernel32" ( _
ByRef Destination As Any, _
ByRef Source As Any, _
ByVal Length As Long)
Private Declare Function VarPtrArr Lib "msvbvm60.dll" Alias "VarPtr" (ByRef Ptr() As Any) As Long
Dim testArr(0 To 15, -20 To 20, 10, 30, 60) As Long
Private Sub Form_Load()
Dim arrPtr As Long
Dim arrDims As Integer
RtlMoveMemory arrPtr, ByVal VarPtrArr(testArr()), 4&
RtlMoveMemory arrDims, ByVal arrPtr, 2&
Debug.Print "Dimensiones del Array: " & arrDims
End Sub