配列の次元を調べる関数

'配列の次元数を調べる関数

Function GetDimension(array_ As Variant) As Long
    Dim dimension As Long: dimension = 1
    Dim dummy As Long
    'エラーが起きるまで処理をまわす
On Error Resume Next
    While Err.Number = 0
        dummy = UBound(array_, dimension)
        dimension = dimension + 1
    Wend
    'エラーが起きた値から2引いたものがその配列の次元になる
    GetDimension = dimension - 2
End Function

使用サンプル

Sub ボタン1_Click()
    Dim hoge As Variant
    hoge = ThisWorkbook.Sheets(1).Range("A1:A10")
    '2次元なので2
    MsgBox GetDimension(hoge)
    '次元変更
    ReDim hoge(1, 2, 3)
    '3次元なので3
    MsgBox GetDimension(hoge)
End Sub