Access VBA初心者向け|ループ文の基本【For・Do・ While】
Access VBAでプログラムを書いていると、
同じ処理を何度も実行したい場面がよくあります。
たとえば、
・レコードを1件ずつ処理したい
・同じ計算を複数回行いたい
・明細行をまとめて作成したい
このようなときに使うのが ループ文 です。
この記事では、
Access VBA初心者向けに「For・Do・While」ループの基本を
解説します。
ループ文とは
ループ文とは、同じ処理を繰り返し実行するための構文です。
ループ文を使うことで、
・コード量を減らせる
・処理ミスを防げる
・修正がしやすくなる
といったメリットがあります。
For文|回数が決まっている処理に使う
決まった回数だけ処理を繰り返す
Dim intカウンタ As Integer
For intカウンタ = 1 To 5
Debug.Print intカウンタ
Next intカウンタ
処理内容の説明(初心者向け)
・intカウンタ:繰り返し回数を管理する変数
・1 To 5:1から5まで処理を繰り返す
・Next:ここで1回分の処理が終了
この例では5回処理が実行されます。
Stepを使ったFor文
Dim intカウンタ As Integer
For intカウンタ = 10 To 1 Step -1
Debug.Print intカウンタ
Next intカウンタ
・Step -1
数値を1ずつ減らす
・カウントダウン処理に便利
For Each文|複数のデータを順番に処理する
For Each~Next は、
複数の値がまとまって入っているデータを、
1つずつ順番に処理するためのループ文です。
回数を数える必要がなく、
「中に入っているデータをすべて処理したい」場合に使います。
配列の中身を1つずつ取り出す
For Each var要素 In 配列名
Debug.Print var要素
Next var要素
ポイント
・データの数だけ自動で処理される
・回数を自分で指定する必要がない
・一覧データを順番に処理したいときに便利
注意点
・Step は使用できない
・カウンタ変数(intカウンタ)は使えない
・単体の値には使用できない
Do While / Do Until|条件で繰り返す
Do While|条件がTrueの間くり返す
Dim intカウンタ As Integer
intカウンタ = 1
Do While intカウンタ <= 5
Debug.Print intカウンタ
intカウンタ = intカウンタ + 1
Loop
ポイント
・条件が Trueの間、処理を繰り返す
・条件を満たさなくなったら終了
Do Until|条件がTrueになるまで繰り返す
Dim intカウンタ As Integer
intカウンタ = 1
Do Until intカウンタ > 5
Debug.Print intカウンタ
intカウンタ = intカウンタ + 1
Loop
ポイント
・条件が Trueになったら終了
・Do While と逆の考え方
While文|シンプルな条件ループ
While ~ Wend|シンプルな条件ループ
Dim intカウンタ As Integer
intカウンタ = 1
While intカウンタ <= 5
Debug.Print intカウンタ
intカウンタ = intカウンタ + 1
Wend
注意点
・書き方は簡単
・ただし 最近は Do While の方が推奨されることが多い
どのループ文を使えばいい?
使いたい場面 おすすめ
回数が決まっている For
条件で制御したい Do While / Do Until
簡単な条件処理 While(※使用は控えめ)
Access VBAでよくある使用例(実務イメージ)
Dim int行 As Integer
For int行 = 1 To 12
‘ 明細行を作成する処理
Next int行
請求書明細の自動作成や、
レコード処理などで For文は特によく使われます。
初心者がつまずきやすい注意点
・カウンタを増やし忘れると無限ループになる
・条件式(<=、>= など)の向きを間違えると、
処理が1回も実行されなかったり、無限ループになる
・For と Do を混在させて混乱する
最初は For文から覚えるのがおすすめです。
まとめ
・ループ文は「同じ処理を繰り返す」ための構文
・回数が決まっている → For
例)5回繰り返す処理
・配列の数分ループしたい → For Each
例)配列やコレクションの中身をすべて処理したい
・条件で制御したい → Do While / Do Until
・Access VBAでは実務でも頻繁に使われる
ループ文を理解すると、Access VBAのコードが一気に書きやすくなります。


