Excel VBA | 配列の「範囲外アクセス」

VBA
スポンサーリンク

では、Excel VBA初心者向けに「範囲外アクセスを防ぐ」練習用ミニ課題を作り、手を動かしながら学べる形にします。

練習課題:配列の範囲を確認して安全にデータを入れる

課題内容

  1. 3つの都道府県名を配列に入れる。
  2. 配列に入れる前に、箱の範囲を確認してから代入する
  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

✅ ポイント:LBoundUBound で範囲をチェックすると、範囲外アクセスを防げます。


ステップ3:配列の中身を表示

For i = LBound(pref) To UBound(pref)
    MsgBox pref(i)
Next i
VB

実行結果イメージ

  1. インデックス 0, 1, 2 → 都道府県名が順に表示
  2. インデックス 3 → 「範囲外です!」とメッセージが出る

挑戦課題

  • 配列のサイズを変えても安全に代入できるように、ループ内の上限を自動で取得して書き換えてみよう。
  • 都道府県名を10個に増やしても、エラーが出ないように工夫してみよう。

💡 初心者向けのポイント

  • 配列のサイズを超えて代入すると、必ず実行時エラーになる
  • LBoundUBound を使うと、配列の範囲を自動で確認できる
  • ループ処理を使うと、何個データがあっても安全に処理できる
タイトルとURLをコピーしました