0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Excel VBA】LBoundとUBound関数|配列の最小・最大インデックスを取得する方法と注意点

Last updated at Posted at 2025-07-30

この記事ではLBound関数とUBound関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。

LBound関数とUBound関数の使い方と注意点

LBound関数とUBound関数とは?

  • LBound関数 : 配列の**下限(最小インデックス)**を取得する関数
  • UBound関数 : 配列の**上限(最大インデックス)**を取得する関数

この2つの関数はセットで使うことが多く、配列のサイズや範囲を動的に扱いたい場合に必須です。

構文

LBound(配列名 [, 次元番号])
UBound(配列名 [, 次元番号])
  • 配列名 : 対象の配列
  • 次元番号(省略可) : 多次元配列の場合は次元を指定(省略時は1次元目)
  • 戻り値 : 指定した配列の下限または上限のインデックス番号(整数)

使用例

一次元配列の上限・下限を取得する

Sub Sample()
    Dim MyArray As Variant
    MyArray = Array("A", "B", "C")

    Debug.Print "下限 : " & LBound(MyArray)
    Debug.Print "上限 : " & UBound(MyArray)
End Sub

▶ 出力結果

下限 : 0
上限 : 2

多次元配列の上限・下限を取得する

Sub Sample()
    Dim MyArray(1 To 3, 5 To 10) As Integer

    Debug.Print "1次元目下限 : " & LBound(MyArray, 1)
    Debug.Print "1次元目上限 : " & UBound(MyArray, 1)
    Debug.Print "2次元目下限 : " & LBound(MyArray, 2)
    Debug.Print "2次元目上限 : " & UBound(MyArray, 2)
End Sub

▶ 出力結果

1次元目下限 : 1
1次元目上限 : 3
2次元目下限 : 5
2次元目上限 : 10

配列の全要素をループ処理する例

Sub Sample()
    Dim MyArray() As Variant
    MyArray = Array("A", "B", "C")

    Dim i As Long
    For i = LBound(MyArray) To UBound(MyArray)
        Debug.Print MyArray(i)
    Next i
End Sub

▶ 出力結果

A
B
C

⚠️注意

配列が未初期化の状態で使うと実行時エラー

未初期化の配列に対してLBoundやUBoundを呼び出すと、配列の範囲が存在しないため、実行時エラーが発生します。

Sub Sample()
    Dim MyArray() As Integer
    ' MyArrayはまだサイズ指定なし(未初期化)
    Debug.Print LBound(MyArray)  ' 実行時エラーが発生
End Sub

▶ 出力結果
error_9.png

配列でない変数に使用するとコンパイルエラー

LBoundやUBoundは配列専用の関数のため、配列でない変数に使用するとコンパイルエラーになります。

Sub Sample()
    Dim Myint As Integer
    Myint = 5
    Debug.Print UBound(Myint)  ' コンパイルエラーが発生
End Sub

▶ 出力結果
no_array.png

多次元配列の場合は、必ず正しい次元を指定

存在しない次元番号を指定すると実行時エラーが発生します。

Sub Sample()
    Dim MyArray(1 To 2, 3 To 4) As Integer
    Debug.Print LBound(MyArray, 3)  ' 次元指定が存在しないため実行時エラーが発生
End Sub

▶ 出力結果
error_9.png

関連するVBA関数

  • Array関数
  • Split関数
  • Join関数

その他のVBA関数

【Excel VBA】VBAでよく使う関数一覧&基本の使い方

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?