LBound関数とUBound関数
【書式】 LBound(配列)
UBound(配列)
Sub Sample1()
Dim tmp(3) As String
tmp(1) = "tanaka"
tmp(2) = "suzuki"
MsgBox LBound(tmp) & "から" & UBound(tmp)
End Sub
上記のコードは、tmp(0)からtmp(3)まで4つの要素を持つ配列変数「tmp」を宣言し、配列内の
「tmp(1)」と「tmp(2)」にデータを格納しています。データの有無によらず、配列変数「tmp」
で使用できる最小のインデックス番号は0であり、最大のインデックス番号は3です。
< スタンダード公式テキスト P98 >
「えっと、それはですね…。
あ、次のページ見てください」
岬さんはテキストの、次のページのサンプルコードを指さしました。
Sub Sample2()
Dim tmp As Variant, i As Long
tmp = Split("tanaka/suzuki/yamada", "/")
For i = 0 To UBound(tmp)
MsgBox tmp(i)
Next i
End Sub
< スタンダード公式テキスト P99 >
「コードの4行目のFor…Nextステートメント、カウンタ変数iの終了値に、
UBound関数で取得したインデックス番号の最大値を使用してますよね。
…こんな感じで、For i = LBound(tmp) To UBound(tmp)…と指定すれば、
配列の最小値から最大値まで、簡単に繰り返し処理が行えるんですよ」
「ふ~~~ん。便利じゃない。
…でもこれって、こないだのFor Each…Nextステートメントでも、同じことができるわよね」
「あ、はい。そうですね」
岬さんが、"すごい"という顔をして泉先輩を見つめます。
泉先輩は、コーヒーをズズーッと飲み干しました。