LBound、UBound関数

LBound 関数は配列の指定された次元で使用できる添字の下限を整数値で返します。
UBound 関数は配列の指定された次元で使用できる添字の上限を整数値で返します。

スポンサーリンク

LBound、UBound関数の使用方法

構文
LBound(ArrayName [, Dimension])
UBound(ArrayName [, Dimension])

【戻り値】 長整数型 (Long)
引数名 省略 説明
ArrayName × 配列変数の名前を指定します。
Dimension 添字の下限・上限を調べたい配列の次元を整数値で指定します。 省略すると、1 が指定されたものと見なされます。

LBound、UBound関数の使用例

2次元配列における各次元の添え字上限・下限を調べる例です。

Sub sample_ef042_01()
    Dim Var(3 To 5, -2 To 1)      As Integer
    Dim i       As Integer
    Dim j       As Integer
    Dim Count   As Integer

    '第2引数を省略すると1次元の値を表示します。
    Debug.Print "1次元 添字下限:" & LBound(Var)
    Debug.Print "1次元 添字上限:" & UBound(Var)
    '2次元
    Debug.Print "2次元 添字下限:" & LBound(Var, 2)
    Debug.Print "2次元 添字上限:" & UBound(Var, 2)

    Count = 0

    '配列にデータを格納する例。配列に1からの連番を格納。
    For i = LBound(Var) To UBound(Var)
        For j = LBound(Var, 2) To UBound(Var, 2)
            Count = Count + 1
            Var(i, j) = Count
        Next j
    Next i

    '配列の要素をすべて表示
    For i = LBound(Var) To UBound(Var)
        For j = LBound(Var, 2) To UBound(Var, 2)
            Debug.Print "Var(" & i & "," & Str(j) & ") = " & Var(i, j)
        Next j
    Next i
End Sub

 For…Next

  • マクロ実行結果(イミディエイトウィンドウ
    1次元 添字下限:3
    1次元 添字上限:5
    2次元 添字下限:-2
    2次元 添字上限:1
    Var(3,-2) = 1
    Var(3,-1) = 2
    Var(3, 0) = 3
    Var(3, 1) = 4
    Var(4,-2) = 5
    Var(4,-1) = 6
    Var(4, 0) = 7
    Var(4, 1) = 8
    Var(5,-2) = 9
    Var(5,-1) = 10
    Var(5, 0) = 11
    Var(5, 1) = 12
タイトルとURLをコピーしました