Originariamente inviato da TrigunXX
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
Hai ragione, non avevo capito la domanda.
Originariamente inviato da TrigunXX
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
Il numero massimo di dimensioni è 60, quindi puoi impostare questo valore come termine massimo.

Mi sono permesso di fare una modifica alla funzione, che dovrebbe funzionare anche con 1 solo elemento per dimensione:
codice:
Public Function getDimensione(ByRef matrice As Variant) As Long
On Error GoTo Fine
Dim I As Long

For I = 1 To 60
 If UBound(matrice, I) >= 0 Then
    getDimensione = getDimensione + 1&
 End If
Next I

Fine:
End Function

Private Sub Command1_Click()
Dim matrice(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

MsgBox CStr(getDimensione(matrice))
End Sub