配列の次元数を求めたい
配列が1次元なのか、2次元なのか次元数を求めたい場合があります。
Ubound関数を応用する事で配列の次元数を取得可能です。
配列の次元数を求めるサンプルコード
Ubound関数でエラーが出るまでループさせ、エラーがでた数-1で引数の配列を次元を取得可能です。
'■配列の次元数を取得する
Public Function Call_arrDimensionCheck(arr As Variant)
Dim tmp As Variant
Dim i As Long
'■エラーが出るまでループ処理
On Error Resume Next
Do While Err.Number = 0
i = i + 1
tmp = UBound(arr, i)
Loop
On Error GoTo 0
'■エラーが出た前の数(i-1)が渡された配列の次元数
Call_arrDimensionCheck = i - 1
End Function
使い方
上記をお好きなモジュール内にコピペしてください。
実際に使用する時は以下のような形で使用してください。
Public Sub sample()
Dim arr1D As Variant: ReDim arr1D(1)
Debug.Print Call_arrDimensionCheck(arr1D) '1
Dim arr2D As Variant: ReDim arr2D(1, 1)
Debug.Print Call_arrDimensionCheck(arr2D) '2
Dim arr3D As Variant: ReDim arr3D(1, 1, 1)
Debug.Print Call_arrDimensionCheck(arr3D) '3
End Sub



コメント