Access VBA初心者向け|ループ文の基本【For・Do・ While】

2026/01/27(更新日:2026/02/10) Accessコラム

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つずつ取り出す

Dim var要素 As Variant

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のコードが一気に書きやすくなります。

Access開発サポートがわかる、
3つのコンテンツ