配列の次元に対応した、添え字数の範囲の上限を返します。
構文:
用法:
result = Ubound( array [, dimension ] )
パラメタ:
array
配列の名前。どの型の配列でもよい。
dimension
上限を取得する次元
戻り値:
配列の次元の上限を返します。
記述:
Ubound は、配列の特定の次元に使用できる、添え字の最大値を返します。
配列の次元は、1 (
1) 〜
n まで付番されます。ここで、
n が次元の総数です。
dimension を
指定しないと、
Ubound は
最初の次元の上限を返します。
dimension が、
ゼロ(0)なら、
Ubound は
n (
配列の次元の数)を返します。
有効な範囲
1..
n の外側の、無効な(0でない)
dimension 値では、結果は
-1 です。
これは可変長配列の、次元の数を検知するために使うことができます。
また、このような場合、
Lbound() の結果と合わせて、与えられた次元が存在するかどうか、あるいは、配列が空(0次元)かどうか、の検知にも使うことができます。
詳細は、
Lbound ページを参照してください。
例:
Dim array(-10 To 10, 5 To 15, 1 To 2) As Integer
Print UBound(array) '10を返します
Print UBound(array, 2) '15を返します
Print UBound(array, 3) '2を返します
Sleep
'' 配列のサイズを測定します。
Dim As Short array(0 To 9)
Dim As Integer arraylen, arraysize
arraylen = UBound(array) - LBound(array) + 1
arraysize = arraylen * SizeOf( Short )
Print "配列の中の要素数:", arraylen '10
Print "配列で使われているバイト数:", arraysize '10 * 2 = 20
Sleep
'' 多次元配列のサイズを測定します
Dim As Long array4D(1 To 2, 1 To 3, 1 To 4, 1 To 5)
Dim As Integer arraylen, arraysize
arraylen = (UBound(array4D, 4) - LBound(array4D, 4) + 1) _
* (UBound(array4D, 3) - LBound(array4D, 3) + 1) _
* (UBound(array4D, 2) - LBound(array4D, 2) + 1) _
* (UBound(array4D, 1) - LBound(array4D, 1) + 1)
arraysize = arraylen * SizeOf( Long )
Print "配列の中の要素数:", arraylen '2 * 3 * 4 * 5 = 120
Print "配列で使われているバイト数:", arraysize '120 * 4 = 480
Sleep
'' 配列が空かどうか判断する
Dim array() As Integer
Print "lbound: "; LBound( array ), "ubound: "; UBound( array ) '' 0 and -1
If LBound( array ) > UBound( array ) Then
Print "配列は空白"
Else
Print "配列は空白ではない"
End If
Sleep
Sub printArrayDimensions( array() As Integer )
Print "dimensions: " & UBound( array, 0 )
'' For each dimension...
For d As Integer = LBound( array, 0 ) To UBound( array, 0 )
Print "dimension " & d & ": " & LBound( array, d ) & " to " & UBound( array, d )
Next
End Sub
Dim array() As Integer
printArrayDimensions( array() )
Print "---"
ReDim array(10 To 11, 20 To 22)
printArrayDimensions( array() )
Sleep
参照: