UBound 関数 (Visual Basic)

更新 : 2007 年 11 月

配列の指定された次元で使用できる添字の最大値を返します。

Public Function UBound( _
   ByVal Array As System.Array, _ 
   Optional ByVal Rank As Integer = 1 _
) As Integer

パラメータ

  • Array
    必ず指定します。任意のデータ型の配列です。ある次元で使用できる添字の最大値を調べる対象となる配列を指定します。

  • Rank
    省略可能です。Integer 型の値です。使用できる添字の最大値を取得する次元を指定します。最初の次元なら 1、2 番目の次元なら 2 というように指定します。Rank を省略すると、1 が使用されます。

戻り値

Integer 型の値です。指定した次元で使用できる添え字の最大値です。Array に要素が 1 つしかない場合、UBound は 0 を返します。要素が長さゼロの文字列である場合など、Array に要素がない場合、UBound は -1 を返します。

例外

例外の種類

エラー番号

条件

ArgumentNullException

9

Array または Nothing

RankException

9

Rank < 1 です。または、Rank が Array のランクより大きな値です。

非構造化エラー処理を使用する Visual Basic 6.0 アプリケーションをアップグレードする場合は、"エラー番号" の列を参照してください(エラー番号を Number プロパティ (Err オブジェクト) と比較することもできます)。ただし、可能であれば、このようなエラー制御は Visual Basic の構造化例外処理の概要 に置き換えることを検討してください。

解説

配列の添字は 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 x 6 x 5 です。

使用例

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.

必要条件

名前空間 : Microsoft.VisualBasic

モジュール : Information

アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)

参照

参照

LBound 関数 (Visual Basic)

Dim ステートメント (Visual Basic)

ReDim ステートメント (Visual Basic)

ArgumentException

RankException