VB6・VBA関数メモ:LBound関数

LBound関数についてメモしておきます。
LBound関数は配列の最小要素の添字を取得する際に使用します。

UBound関数と同様に、第2引数のdimensionに配列の次元を指定できます。
多次元配列で使用する際には指定する必要があります。

なお、配列の要素数が0の場合はエラーとなる為、別途関数を作るかエラー処理を書く必要があります。


概要

LBound(arrayname, [dimension])
機能 対象配列の最小要素の添字を返す
戻り値 最小要素の添字


引数

引数名説明
arrayname 対象となる配列
※要素数0の配列だとエラー
dimension (省略可)
最小要素の添字を取得する配列の次元
省略時は「1」
※「0」以下を指定するとエラー


使用例

説明記述例出力
配列の最小要素の添字を取得
(配列の最小値が未指定の場合は0)
Dim datas(5) As String
Debug.Print LBound(datas)
0
配列の最小要素の添字を取得
(配列の最小値を指定している場合)
Dim datas(2 To 5) As String
Debug.Print LBound(datas)
2
配列の2次元目の要素数を取得
Dim datas(1 To 3, 5 To 10) As String
Debug.Print LBound(datas, 2)
5
3次元配列のループ
Dim i As Long
Dim j As Long
Dim k As Long

Dim datas(5, 10, 15) As String

For i = LBound(datas, 1) To UBound(datas, 1)
    For j = LBound(datas, 2) To UBound(datas, 2)
        For k = LBound(datas, 3) To UBound(datas, 3)
            Debug.Print datas(i, j, k
        Next k
    Next j
Next i
(略)
要素数が0の場合でもエラーを
出さないようにする
(独自に関数作成)
'LBound関数と同じ処理を行う
'※エラーの場合は-1を返す
Function LBound2(arrayname, Optional dimension = 1) As Long
On Error GoTo ErrHandler

    LBound2 = LBound(arrayname, dimension)

    Exit Function
ErrHandler:
    'エラーの場合
    LBound2 = -1
End Function



Dim datas() As String
Debug.Print LBound2(datas)
-1


コメント
コメントする








    
この記事のトラックバックURL
トラックバック