VBA UBound()関数

定義と使い方

VBA UBound()関数は配列の指定した次元で使用できる添字の最大値を含むLongデータ型を返します。

ヒント:UBound関数は、配列のサイズを決定するためにLBound 関数と共に使用されます。 配列の次元の上限を調べる場合は UBound 関数を使用します。

構文

UBound(arrayname[,dimension])
引数説明
arrayname必須です。 配列変数の名前を指定します。
dimension省略可能。Variant (Long)。 取得する次元の上限を示す整数。 最初の次元には1、2番目の次元では2というように使用します。 次元を省略すると、1が想定されます。

実例

例1

dim a(10)
a(0)="Saturday"
a(1)="Sunday"
a(2)="Monday"
a(3)="Tuesday"
a(4)="Wednesday"
a(5)="Thursday"
document.write(UBound(a))
document.write("
")
document.write(LBound(a))
dim a(10)
a(0)="Saturday"
a(1)="Sunday"
a(2)="Monday"
a(3)="Tuesday"
a(4)="Wednesday"
a(5)="Thursday"
document.write(UBound(a))
document.write("
")
document.write(LBound(a))

結果:

10
0

例2

Sub test()
Dim arr, brr
arr = Array(1, 2, 3, 4)
MsgBox UBound(arr) '3を返す
brr = Range("A1:C5")
MsgBox UBound(brr, 1) '5を返す
MsgBox UBound(brr, 2) '3を返す
End Sub

上記のコードは最初に1次元配列arrを定義し、1次元配列は0から始まるため、ubound(arr)は3を返し、brrはRangeオブジェクトによって定義された5行3列の配列で 、Rangeで定義された配列は1から始まるため、Ubound(brr,1)は5を返し、Ubound(brr,2)は3を返します。

例3

Function FnLowerUpperBound()
Dim arrOneDArray(1 To 5)
Dim arrTwoDArray(1 To 5, -2 To 10)
Dim arrMultiDArray(0 To 4, -2 To 4, 2 To 7)
Dim strString
strString = "LBound arrOneDArray is: " & LBound(arrOneDArray) & vbCrLf ‘1次元配列
strString = strString & "LBound of 2nd dimension of arrTwoDArray is: " & LBound(arrTwoDArray, 2) & vbCrLf ‘2次元配列
strString = strString & "LBound of 3rd dimension of arrMultiDArray is: " & LBound(arrMultiDArray, 3) & vbCrLf ‘3次元配列
MsgBox strString ‘メッセージボックスを使用して、LBoundの実行結果を表示する
strString = "UBound of arrOneDArray is: " & UBound(arrOneDArray) & vbCrLf ‘1次元配列
strString = strString & "UBound of 2nd dimension of arrTwoDArray is: " & UBound(arrTwoDArray, 2) & vbCrLf ‘2次元データ
strString = strString & "UBound of 3rd dimension of arrMultiDArray is: " & UBound(arrMultiDArray, 3) & vbCrLf ‘3次元データ
MsgBox strString ‘メッセージボックスを使用して、UBoundの実行結果を表示する
End Function
LBound関数の実行結果
UBound関数の実行結果

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です