Information.UBound(Array, Int32) メソッド

定義

配列の指定された次元で使用可能な最高の添字を返します。

public static int UBound(Array Array, int Rank = 1);
static member UBound : Array * int -> int
Public Function UBound (Array As Array, Optional Rank As Integer = 1) As Integer

パラメーター

Array
Array

必須。 任意のデータ型の配列。 次元の可能な限り高い添字を検索する配列。

Rank
Int32

このフィールドは省略可能です。 Integer。 可能な限り高い添字が返されるディメンション。 最初の次元なら 1、2 番目の次元なら 2、というように指定します。 Rankを省略すると、1 と見なされます。

返品

Integer。 指定したディメンションの添字に含めることができる最大値。 Arrayに要素が 1 つしかない場合、UBoundは 0 を返します。 Arrayに要素がない場合 (長さ 0 の文字列の場合など)、UBoundは -1 を返します。

例外

ArrayNothingです。

Rank が 1 未満であるか、 RankArrayのランクより大きい。

次の例では、 UBound 関数を使用して、配列の指定された次元で使用可能な最高の添字を決定します。

Dim highest, bigArray(10, 15, 20), littleArray(6) As Integer
highest = UBound(bigArray, 1)
highest = UBound(bigArray, 3)
highest = UBound(littleArray)
' The three calls to UBound return 10, 20, and 6 respectively.

注釈

配列の添字は 0 から始まるため、ディメンションの長さは、そのディメンションで使用可能な最も高い添字よりも 1 つ大きくなります。

次の次元の配列の場合、 UBound は次の表の値を返します。

Dim a(100, 5, 4) As Byte
UBound への呼び出し 戻り値
UBound(a, 1) 100
UBound(a, 2) 5
UBound(a, 3) 4

UBoundを使用して配列内の要素の合計数を決定できますが、添字が 0 から始まるという事実を考慮して返される値を調整する必要があります。 次の例では、前の例で a 配列の合計サイズを計算します。

Dim total As Integer
total = (UBound(A, 1) + 1) * (UBound(A, 2) + 1) * (UBound(A, 3) + 1)

totalに対して計算される値は 3030 で、101 * 6 * 5 です。

適用対象

こちらもご覧ください