LBound
(ローバウンド):配列の**最小のインデックス(添字)を返すUBound
(アッパーバウンド):配列の最大のインデックス(添字)**を返す
つまり、配列の範囲(何番目から何番目まであるのか)を知るための関数です。
1. 基本構文
LBound(配列名)
UBound(配列名)
2. 使用例①:固定長配列の場合
Dim nums(1 To 5) As Integer
MsgBox LBound(nums) '結果:1
MsgBox UBound(nums) '結果:5
3. 使用例②:Split関数の結果に使う
Dim fruits() As String
Dim i As Integer
fruits = Split("りんご,バナナ,オレンジ", ",")
For i = LBound(fruits) To UBound(fruits)
MsgBox fruits(i)
Next i
この例では、配列 fruits
の添字は 0
~ 2
になります(Split関数は0から始まる配列を返すため)。
4. なぜ使うの?
- 配列の範囲が動的(可変)なときに便利
- ループの開始と終了を自動で決められる
- Split関数やReDimで変更された配列などに使える
5. 注意点
- LBound = 0 から始まるとは限らない
→Dim nums(1 To 10)
のように書けば、開始は 1 - Option Base によってもデフォルトの開始番号が変わる
6. まとめ
関数 | 意味 | よく使う場面 |
---|---|---|
LBound | 最小インデックスを取得 | ループの開始点を決める |
UBound | 最大インデックスを取得 | ループの終了点を決める |
実際のループでの使い方の定番
For i = LBound(arr) To UBound(arr)
'配列の中身を処理
Next i
これを覚えておくだけで、可変長の配列にも柔軟に対応できます!
配列を扱うVBAコードでは、LBoundとUBoundは超重要な基本テクニックです!
コメント