配列の次元数を求めたい
配列が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
コメント