【EXCEL VBA】ループ処理でcontinueしたい

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