【Access VBA】For文の使い方|VBAの繰り返し処理の基本

「VBAでFor文の使い方がよく分からない…」
このように悩んでいませんか?
For文は同じ処理を繰り返すための基本構文ですが、書き方でつまずきやすいポイントでもあります。
本記事ではAccess VBAでのFor文の基本構文から使い方まで分かりやすく解説します。
- Access VBAにおけるFor文の基本構文
- For文の使い方と繰り返し処理の基本
- Exit Forを使ったループの途中終了方法
- リストボックスなどを使ったループ処理
VBAの繰り返し処理の基本
VBAでは、同じ処理を繰り返す際に「繰り返し処理(ループ)」を使用します。
主な繰り返し処理の種類は以下のとおりです。
| 種類 | 特徴 |
|---|---|
| For | 回数が決まっている繰り返し処理 |
| Do While | 条件がTrueの間繰り返す |
| Do Until | 条件がTrueになるまで繰り返す |
それぞれ用途は異なりますが、今回は基本となるFor文について解説します。
VBA For文の基本構文
VBAのFor文は指定した回数だけ処理を繰り返す際に使用します。
基本構文
For 変数 = 開始値 To 終了値 Step 増減値
繰り返したい処理
Next 変数- 変数:繰り返し回数を管理する変数
- 開始値:ループの開始値
- 終了値:ループの終了値
- Step:増減値
ポイント
- Stepは省略することもできます
- 省略した場合は1ずつ値が増加します
使用例
Dim i As Integer
For i = 1 To 5
Debug.Print i
Next i1 → 2 → 3 → 4 → 5 のように順番に出力されます。
Dim i As Integer
For i = 1 To 10 Step 2
Debug.Print i
Next iFor文の最後にStep 2を指定することで、
1 → 3 → 5 → 7 → 9 のように2ずつ増えながら出力されます。
For文を途中で抜ける方法(Exit For)
条件によって途中でループを終了したい場合はExit Forを使用します。
Exit Forを使うことで、For文の途中で処理を抜けることができます。
基本構文
For 変数 = 開始値 To 終了値
処理
If 条件 Then
Exit For
End If
Next 変数使用例
Dim i As Integer
For i = 1 To 10
If i = 5 Then
Exit For
End If
Debug.Print i
Next iこのVBAではiが5になった時点でループが終了します。
1 → 2 → 3 → 4 のように途中まで出力されその後の処理は行われません。
ポイント
- 条件を満たした時点でループを抜けることができる
- 無駄な繰り返し処理を減らせる
例えば「特定の値が見つかったら処理を終了する」といった場面でよく使用されます。
実務で使えるサンプルコード
配列をループする
Dim arr As Variant
arr = Array("A", "B", "C")
Dim i As Integer
For i = LBound(arr) To UBound(arr)
Debug.Print arr(i)
Next iLBoundとUBoundを使うことで配列の最初から最後まで順番に値を取り出すことができます。
特定の値を見つけたら処理する
Dim arr As Variant
arr = Array("A", "B", "C")
Dim i As Integer
For i = 0 To 2
If arr(i) = "B" Then
Exit For
End If
Next i特定の値を見つけた時点でループを終了します。
リストボックスのデータをループする
Dim i As Integer
With Me.リストボックス名
For i = 0 To .ListCount - 1
Debug.Print .Column(0, i)
Next i
End Withリストボックスに表示されているデータを順番に取得して処理できます。
リストボックスはインデックスが0から始まるため、ListCount – 1で最後の要素に合わせています。
For文の注意点
For文は基本的にシンプルな構文ですが、使い方によって処理効率に差が出るため注意が必要です。
- ループ回数が多いと処理が重くなるため注意する
- Exit Forを使うことで無駄な処理を避けられる
- 終了条件を誤ると想定外の動作になる可能性がある
- 大量データを扱う場合はパフォーマンスに注意する
まとめ
今回はAccess VBAでのFor文の基本構文から使い方までを解説しました。
For文は条件分岐やExit Forを使った途中終了など幅広く活用することができます。
基本構文を理解しておくことでVBAの他の処理にも応用できるようになります。
コメント