関数 LBound(小)関数とUBound(大)関数

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

LBound 関数

配列の指定された次元で使用できる最小の添字を、長整数型 (Long)の値で返します。

  • 構文

  • LBound(arrayname[, dimension])
  • LBound 関数の構文は、次の指定項目から構成されます。
  • 指定項目 内容

  • arrayname
    必ず指定します。配列変数の名前です。変数の標準的な名前付け規則に従って指定します。
  • dimension
    省略可能です。バリアント型 (内部処理形式 Long の Variant) の値を指定します。添字の最小値を調べる対象となる配列の次元を示す整数を指定します。最初の次元なら 1、2 番目の次元なら 2、というように指定します。引数 dimension を省略すると、1 が指定されたものと見なされます。
  • 解説

  • LBound 関数
    は、UBound 関数と組み合わせて、配列のサイズを調べるために使います。配列の添字の最大値を調べるには、UBound 関数を使います。
  • 次のような配列が宣言されている場合
    、LBound 関数からは下の表のような値が返ります。
  • Dim A(1 To 100, 0 To 3, -3 To 4)
  • ステートメント 戻り値
  • LBound(A, 1) 1
  • LBound(A, 2) 0
  • LBound(A, 3) -3
  • 配列の添字の最小値の既定値は、0 または 1 です。
    この値は、Option Base ステートメントの設定によって決まります。Array 関数で作成された配列の添字は、0 から始まり、Option Base ステートメントの影響は受けません。
  • Dim、Private、Public、ReDim、Static のいずれかのステートメントで To 節を使って配列の次元を設定すると、添字の最小値に任意の整数値を指定できます。

LBound 関数の使用例

次の例では、LBound 関数を使って、配列内の指定された次元の添字として使える最小値を求めます。配列の添字の既定の最小値 0 を変更するには、Option Base ステートメントを使います。
Option Explicit

Dim Lower
    ' 配列変数を宣言します。
Dim MyArray(1 To 10, 5 To 15, 10 To 20)
Dim AnyArray(10)
Lower = LBound(MyArray, 1)     ' 1 を返します。
Lower = LBound(MyArray, 3)     ' 10 を返します。
Lower = LBound(AnyArray)
            ' Option Base の設定に応じて、0 または 1 を返します。

UBound 関数

配列の指定された次元で使用できる添字の最大値を、長整数型 (Long) の値で返します。

  • 構文

  • UBound(arrayname[, dimension])
  • UBound 関数の構文は、次の指定項目から構成されます。
  • 指定項目 内容

  • arrayname
    必ず指定します。配列変数の名前です。変数の標準的な名前付け規則に従って指定します。
  • dimension
    省略可能です。バリアント型 (内部処理形式 Long の Variant) の値を指定します。添字の最大値を調べる対象となる配列の次元を示す整数を指定します。最初の次元なら 1、2 番目の次元なら 2、というように指定します。引数 dimension を省略すると、1 が指定されたものと見なされます。
  • 解説

  • UBound 関数
    は、LBound 関数と組み合わせて、配列のサイズを調べるために使います。配列の添字の最小値を調べるには、LBound 関数を使います。
  • 次のような配列が宣言されている場合
    、UBound 関数からは下の表のような値が返ります。
  • Dim A(1 To 100, 0 To 3, -3 To 4)
  • ステートメント 戻り値
  • UBound(A, 1) 100
  • UBound(A, 2) 3
  • UBound(A, 3) 4

UBound 関数の使用例

次の例では、UBound 関数を使って、配列の指定された次元の添字として使える最大値を求めます。
Option Explicit

Dim Upper
Dim MyArray(1 To 10, 5 To 15, 10 To 20)
                                ' 配列変数を宣言します。
Dim AnyArray(10)
Upper = UBound(MyArray, 1)      ' 10 が返ります。
Upper = UBound(MyArray, 3)      ' 20 が返ります。
Upper = UBound(AnyArray)        ' 10 が返ります。
  • はてなブックマークに追加

 

2016年10月01日|[VBサンプルコード]:[関数]