LBound関数:配列の最小インデックスを取得する

LBound 関数は Excel VBA で用意されている関数の一つで、引数に指定した配列の最小インデックスを取得します。配列に複数の次元がある場合は次元を指定して取得できます。ここでは Excel VBA における LBound 関数の使い方について解説します。

※ 配列の最大インデックスを取得するには UBound 関数を使用します。詳しくは「UBound関数:配列の最大インデックスを取得する」を参照されてください。

(Last modified: )

LBound関数の定義と使い方

LBound 関数は引数に指定した配列の最小インデックスを返します。

LBound(arrayname)

1 番目の引数に配列を指定します。戻り値として配列の最小インデックスを返します。

次の例を見てください。

Dim str(2) As String
Dim num(3 To 6) As Integer

Debug.Print LBound(str)  '0
Debug.Print LBound(num)  '3

要素数だけを指定して配列を作成した場合、最小インデックスは 0 となります。インデックス範囲を指定した配列を作成した場合、最小インデックスは指定したインデックスの最小値の値になります。

多次元配列の場合

配列が多次元配列の場合、どの次元の最小インデックスを取得するのかは LBound 関数の省略可能な 2 番目の引数で指定します。最初の次元を指定する場合は 1 、次の次元は 2 と続いていきます。

次の例を見てください。

Dim v(5, 1 To 3) As Integer

Debug.Print LBound(v, 1)  '0
Debug.Print LBound(v, 2)  '1

2 次元の配列を 1 番目の引数に指定しました。 2 番目の引数で次元を指定しそれぞれ最小インデックスを取得します。多次元配列の場合も要素数だけを指定した場合の最小インデックスは 0 で、インデックス範囲を指定した場合は最小インデックスはインデックスの最小値となります。

サンプルコード

それでは簡単なサンプルを作成して試してみます。

Option Explicit

Sub LBound関数()
    Dim str(2) As String
    Dim num(3 To 6) As Integer
    Dim v(5, 1 To 3) As Integer

    Debug.Print LBound(str)
    Debug.Print LBound(num)
    Debug.Print LBound(v, 1)
    Debug.Print LBound(v, 2)
End Sub

LBound関数の定義と使い方(1)

このプログラムを実行すると LBound 関数を使って変数に指定した配列の最小インデックスを取得します。

LBound関数の定義と使い方(2)

-- --

Excel VBA における LBound 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。