次の方法で共有


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 番目の次元の場合は 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 です。

適用対象

こちらもご覧ください