VBA で配列を扱う際には、最小インデックスと最大インデックスをそれぞれ確認する事を求められます。この記事では、Lbound関数のUBound関数がどのようにして配列操作の精度と効率を向上させるかを紹介します。
UBound関数とは
Excel VBAのUBound関数は配列の上限(最大の添字)を返す関数です。
宣言された配列に基づいて、その最大の添字を返します。
【UBound関数の基本構文】
UBound(arrayName, [dimension])
- arrayName:上限を取得したい配列の名前を指定します。必須の引数です。
- dimension:オプションの引数で、多次元配列の場合、どの次元の上限を取得したい比率を示す数値を指定します。仮に省略された場合、UBoundは第1次元の上限を返します。2次元配列は2まで、3次元配列は3まで指定することができます。
UBound関数で要素の取得方法
【1次元配列の上限を取得するコード】
Dim myArray(1 To 10) As Integer
Dim upperBound As Integer
upperBound = UBound(myArray)
' upperBoundには10が格納されます。
【2次元配列の特定の次元の上限を取得するコード】
Dim myArray(1 To 5, 10 To 20) As Integer
Dim upperBoundFirstDim As Integer
Dim upperBoundSecondDim As Integer
upperBoundFirstDim = UBound(myArray, 1)
upperBoundSecondDim = UBound(myArray, 2)
' upperBoundFirstDimには5が、upperBoundSecondDimには20が格納されます。
LBound関数とは
Excel VBAのLBound関数は、配列の下限(最小の添字)を返す関数です。
宣言された配列に基づいて、その最小の添字を返します。
【LBound関数の基本構文】
LBound(arrayName, [dimension])
- arrayName:下限を知りたい配列の名前です。必須の引数です。
- Dimension:オプションの引数で、多次元配列の場合、どの次元の下限を取得するか指定します。仮に省略された場合、第 1 次元の下限が返されます。
LBound関数で要素の取得方法
【1次元配列の下限を取得するコード】
Dim myArray(1 To 5) As Integer
Dim lowerBound As Integer
lowerBound = LBound(myArray)
' lowerBoundには1が格納されます。
【2次元配列の特定の次元の下限を取得するコード】
Dim myArray(1 To 5, 10 To 20) As Integer
Dim upperBoundFirstDim As Integer
Dim upperBoundSecondDim As Integer
upperBoundFirstDim = UBound(myArray, 1)
upperBoundSecondDim = UBound(myArray, 2)
' upperBoundFirstDimには5が、upperBoundSecondDimには20が格納されます。