EXCEL VBAでは、言語としてcontinueが実装されていません。よって、For Nextや、Do While, Do Untilなどのループ処理でcontinueしたい場合は、どうすればよいのか?となります。今回は、ループ処理で疑似的にcontinueする方法を紹介します。
なお、他言語でbreakに相当する命令は存在します。Exit ForやExit Doとなります。ループ処理でbreakしたい部分に、ループ命令に合わせてExit ForまたはExit Doを記述すれば期待通りの動きをします。
GoTo文で解決する
EXCEL VBAでは、Goto文を利用することで疑似的にcontinueを実装することができます。 continueを行いたい部分でGoTo文を記述して、ループ処理最後(Nextの直前)までジャンプすることで、疑似的にcontinueを実現します。
サンプルプログラムを確認する(コピペOK)
Sub sample()
Dim i As Integer
For i = 0 To 10
If i Mod 2 = 0 Then ' iが偶数の時はcontinueしたい
GoTo CONTINUE1: ' Goto文にて疑似的にcontinueを実現
End If
Debug.Print i '1 3 5 7 9
CONTINUE1:
Next
End Sub