Io penso che lui cerchi di sapere le n dimensioni di una matrice e non il numero di elementi inferiore (LBound) e superiore (Ubound) di una dimensione di una matrice

Mi sono messo d'impegno e ho trovato una soluzione al tuo problema

Prova con questa funzione

codice:
Public Function getDimensione(ByRef matrice As Variant) As Long
Dim contDim As Long
cont = 0
For i = 1 To 50
On Error GoTo matriceErr
 If UBound(matrice, i) > 0 Then
    contDim = contDim + 1
 End If
Next
getDimensione = contDim
Exit Function
matriceErr:
getDimensione = contDim
End Function
Se pensi di avere matrici che superano le 50 dimensioni allora nel ciclo
"For i = 1 To 50" modifica il 50 con qualche altro numero

Per farla funzionare ho gestito la generazione di errori...cmq funziona...quando la funzione va' a verificare il
numero di elementi in una dimensione che non esiste genera l'errore e il contatore si blocca al
n° tot di dimensioni


Dim matrice2((3), (2), (1), (1))
MsgBox getDimensione(matrice2)

restituisce 4