Excel VBA 繰り返し処理をする「For...Next」「Do...Loop」

Excel VBA で繰り返し処理をする時は「ForNext」ステートメントや「DoLoop」ステートメントを使います。

 

< スポンサーリンク >





For…Next 構文

For counter = start To end [Step step]
    処理
Next counter

counter = 繰り返し処理のカウンタに使う数値変数を指定。
start = counterの初期値を指定。
end = counterの最終地を指定。
step = counterに増減する値を指定。省略するとcounterに1が加算されます。

※ Next counter の counter は省略可。
※ 繰り返し処理を抜ける時は Exit For を使う。

 

For…Next 使用例

★ iを1~10まで1ずつ増やし繰り返す

Sub LoopTest1()
    Dim i As Integer
    For i = 1 To 10
        MsgBox i
    Next
End Sub

 

★ iを1~10まで2ずつ増やし繰り返す

Sub LoopTest2()
    Dim i As Integer
    For i = 1 To 10 Step 2
        MsgBox i
 Next
End Sub

 

★ iを10~1まで2ずつ減らし繰り返す

Sub LoopTest3()
    Dim i As Integer
    For i = 10 To 1 Step -2
        MsgBox i
    Next
End Sub

 

★ iを1~10まで1ずつ増やし、iが5になったら繰り返し処理を抜ける

Sub LoopTest4()
    Dim i As Integer
    For i = 1 To 10
        MsgBox i
        If i = 5 Then
            Exit For
        End If
    Next
End Sub

 

Do…Loop 構文

Do [{While | Until} condition]
    処理
Loop

上記は、条件が満たされるか判断して処理をする。

 

Do
    処理
Loop [{While | Until} condition]

上記は、処理をした後に条件が満たされるか判断する。

condition = 真(True)または偽(False)を評価する数式または文字列式を指定。conditionの値がNull値の場合、conditionは偽(False)が使われる。

※ 繰り返し処理を抜ける時は Exit Do を使う。

 

Do…Loop 使用例

★ iが10以下なら繰り返す

Sub LoopTest5()
    Dim i As Integer
    i = 1
    Do While i <= 10
        MsgBox i
        i = i + 1
    Loop
End Sub

 

Sub LoopTest6()
    Dim i As Integer
    i = 1
    Do
        MsgBox i
        i = i + 1
    Loop While i <= 10
End Sub

 

★ iが10より上でないなら繰り返す

Sub LoopTest7()
    Dim i As Integer
    i = 1
    Do Until i > 10
        MsgBox i
        i = i + 1
    Loop
End Sub

 

Sub LoopTest8()
 Dim i As Integer
    i = 1
    Do
        MsgBox i
        i = i + 1
    Loop Until i > 10
End Sub

 

★ iが10以下なら繰り返し、iが5になったら繰り返し処理を抜ける

Sub LoopTest9()
    Dim i As Integer
    i = 1
    Do While i <= 10
        MsgBox i
        i = i + 1
        If i = 5 Then
            Exit Do
        End If
    Loop
End Sub

 

< スポンサーリンク >※広告先のお問い合わせは広告主様にお願いします