VBA ループを抜ける
VBAでは、Doループを終了させるために Exit Doコマンドを使用します。
Exit Do
コードの実行がExit Doに来ると、Doループを抜けて、ループの後の最初の行から実行を継続します。 Forループの終了方法を知りたい方は、こちらのリンクをクリックしてください。VBA Exit For
条件を満たしたときにループを抜ける
以下の例では、ある条件を満たしたときにDoループを終了させる方法を説明します。ループして、繰り返しごとに変数iの値を1ずつ増やしていきます。6になったらループを抜けて、メッセージボックスを返したいとします。以下はそのコードです。
Dim i As Integer
Do While i < 10
i = i + 1
If i = 6 Then
Exit Do
End If
Loop
MsgBox "値は" & i & "です"
まず、iの値が10よりも小さい場合にDoループに入ります。
Do While i < 10
Loop
ループの中で、iの値を1だけインクリメントします。
i = i + 1
その後、iの値が6になったかどうかをIfコマンドでチェックします。もし値が6なら、Doループを抜けて、ループの後の最初の行に進みます。
If i = 6 Then
Exit Do
End If
Doループを抜けた後に実行されるコードの1行目には、iの値が入ったメッセージボックスが表示されます。
MsgBox "その値は" & i & "です"
このコードをデバッグモードで実行すると、6回ループを通過することがわかります。6回目の繰り返しで、変数iの値は6になり、If文が実行されます。これで、Doループの本体が終了しました。その後、MsgBoxがポップアップしてiの値が表示されます。