Excel VBA で繰り返し処理をする時は「For…Next」ステートメントや「Do…Loop」ステートメントを使います。
< スポンサーリンク >
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
こんな記事も書いています