では、Excel VBA初心者向けに「範囲外アクセスを防ぐ」練習用ミニ課題を作り、手を動かしながら学べる形にします。
練習課題:配列の範囲を確認して安全にデータを入れる
課題内容
- 3つの都道府県名を配列に入れる。
- 配列に入れる前に、箱の範囲を確認してから代入する。
- 配列の中身を順番にメッセージボックスで表示する。
ステップ1:配列を作る
Dim pref(2) As String ' 0~2の3つの箱を作る
VBステップ2:範囲をチェックして代入する
Dim i As Integer
Dim names(2) As String
names(0) = "東京"
names(1) = "大阪"
names(2) = "京都"
' 配列に安全に代入する
For i = 0 To 3 ' あえて範囲外の3も指定
If i >= LBound(pref) And i <= UBound(pref) Then
pref(i) = names(i)
Else
MsgBox "インデックス " & i & " は範囲外です!"
End If
Next i
VB✅ ポイント:LBound と UBound で範囲をチェックすると、範囲外アクセスを防げます。
ステップ3:配列の中身を表示
For i = LBound(pref) To UBound(pref)
MsgBox pref(i)
Next i
VB実行結果イメージ
- インデックス 0, 1, 2 → 都道府県名が順に表示
- インデックス 3 → 「範囲外です!」とメッセージが出る
挑戦課題
- 配列のサイズを変えても安全に代入できるように、ループ内の上限を自動で取得して書き換えてみよう。
- 都道府県名を10個に増やしても、エラーが出ないように工夫してみよう。
💡 初心者向けのポイント
- 配列のサイズを超えて代入すると、必ず実行時エラーになる
LBoundとUBoundを使うと、配列の範囲を自動で確認できる- ループ処理を使うと、何個データがあっても安全に処理できる
