エクセルマニア

VBAでFor~Nextで繰り返し・ループ処理

TOP > VBA・マクロ >  For~Nextで繰り返し・ループ処理
このエントリーをはてなブックマークに追加

For~Nextステートメント


For~Next はループ処理を行う際に用いられます。繰り返す回数が決まっている場合はこのForを、決まっていない場合はDo~LoopFor Eachを使用します。

Forの基本構文


For 変数 = 初期値 To 終了値
    繰り返し回数までの処理
Next

サンプルコード

' Sheet1 のA1~A5 に 変数iを記入
For i = 1 To 5
    Worksheets("Sheet1").Cells(i, 1).Value = i
Next


For文で -5~10までのループ

サンプルコード

' -5から10まで+1づつしながら15回ループします。
For i = -5 To 10
    Worksheets("Sheet1").Cells(i+10, 1).Value = i
Next


For文のループを抜ける Exit For

For文の途中でループを抜けたい場合は Exit For を使用します。
サンプルコード

' ループは5回指定していますが、3回目でループは終了します。
For i = 1 To 5
    If i = 3 Then Exit For
    Worksheets("Sheet1").Cells(i, 1).Value = i
Next


For文で 1~10まで繰り返す実行結果

For文を用いたプログラムと結果のサンプルです。1~10まで繰り返し、iをセルに出力します。
For文で10回ループ処理のVBAサンプルソース

ボタンをクリックした実行結果です。

For文で10回ループ処理のVBAサンプルの実行結果

ループ処理(For)+条件分岐(If)で偶数のみ出力

For文If文を組み合わせて 偶数の場合のみセルに出力します。
VBAでのFor文とIf文のサンプルソース

ボタンをクリックした実行結果です。

For文とIF文を組み合わせたVBAサンプルの実行結果

今回使用したソースプログラム

Private Sub CommandButton1_Click()
Dim i As Integer '整数の変数を定義
For i = 1 To 30 'iを0から30までループ処理
    If i Mod 2 = 0 Then '条件を偶数の時のみ
        Cells(i, 1).Value = i 'iをセルに書き出す
   End If
Next i
End Sub

For文のSTEPを用いたサンプルソースと実行結果


通常 For ~ Next では カウンタが +1 ずつ増えますが、この増減値を Step を指定する事で変更できます。
For文でStepを指定したVBAサンプルソース

ボタンをクリックした実行結果です。(クリックして拡大)

For文でStepを指定したVBAサンプルの実行結果

今回使用したソースプログラム

Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 10 Step 2 'iは+2づつ増えて合計5回ループします。
   Cells(i, 1).Value = i 'iをセルに書き出す
Next i
End Sub

このエントリーをはてなブックマークに追加