本ページには広告が含まれています。

ExcelVBA LBound関数 配列の最小インデックスを返す

ExcelVBA LBound関数 配列の最小インデックスを返す

Excel VBAの「LBound 関数」について解説します。

スポンサーリンク

LBound 関数とは

Excel VBA の LBound 関数は、指定された次元の配列で使用できるインデックス番号の最小値を返します。

LBound 関数は、配列を正しい初期値からループしたいときに使用する関数です。ループ処理する際は、配列の最大インデックスを取得する Ubound 関数を併用します。

LBound 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。

LBound 関数(Visual Basic for Applications リファレンス)

構文(引数と戻り値)

Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。

構文

LBound(arrayname[, dimension])

引数

引数 説明
arrayname【必須】配列の名前を指定します
dimension【省略可能】対象とする配列の次元を指定します
※ 省略時は (1) 一次元目が指定されたとみなされます

※ 配列のインデックス (添え字) とは、配列内の特定の要素を示すために使用される番号のことです。

戻り値

戻り値説明
数値
(Long)
最小インデックス番号を表す数値 (Long) を返します

解説(使用例)

LBound 関数の使い方をサンプルで確認していきましょう。

LBound 関数サンプル (基本的な使用例)

配列の最小インデックスを調べるサンプルを二つ紹介します。

一次元配列からの取得例

'■LBound関数サンプル1(1次元配列の取得例)
Sub LBound_Sample01()
  Dim var As Variant
  Dim minId As Long
  
  var = Array(1, 2, 3, 4, 5)
  minId = LBound(var)
  
  Debug.Print "配列の最小インデックス " & minId ' 出力は 0

End Sub

これを実行したイミディエイトがこちらです。

LBound_Sample01 実行時のイミディエイト画像

Array 関数で作成した配列のインデックスは スタートです。

dimension は省略しています。省略時の既定は 1 (1次元目)です。

多次元配列からの取得例

2次元配列のサンプルです。

'■LBound関数サンプル2(多次元配列の取得例)
Sub LBound_Sample02()
  Dim matrix(1 To 3, 2 To 4) As String '2次元の配列宣言
  Dim minId1 As Long
  Dim minId2 As Long
    
  minId1 = LBound(matrix, 1) ' 1次元の最小インデックス
  minId2 = LBound(matrix, 2) ' 2次元の最小インデックス
  
  Debug.Print "1次元の最小インデックス " & minId1 ' 出力は 1
  Debug.Print "2次元の最小インデックス " & minId2 ' 出力は 2

End Sub

これを実行したイミディエイトがこちらです。

LBound_Sample02 実行時のイミディエイト画像

・はじめに2次元配列の変数を宣言しています。

dimension で次元数を指定しています。 1 = 1次元目、 = 2次元目、 = 3次元目 ・・・です。

参考記事

次の記事にもサンプルがあります。是非ご覧ください。

おわりに

Excel VBA の LBound 関数は、配列の最小インデックスを取得するための便利な関数です。

特に多次元配列や、動的に変化する配列のループ処理において Ubound 関数と組み合わせて使うのが必須と言ってよいでしょう。使い方をマスターすることで、より柔軟なVBAコードが書けるようになると思います。

以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;

VBAの関数一覧はこちらからご参照ください。

スポンサーリンク
スポンサーリンク

VBAサンプルファイルダウンロードページのご案内

このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。

ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!