【VBA】繰り返し処理で疑似的にcontinueを実現する

前提

・VBAにはcontinue(ループをスキップする機能)は無い
・GoTo文を用いることで、疑似的にcontinueを実現する

サンプルプログラム

Sub continueSample()

    Dim i As Integer
    
    For i = 0 To 10
   
        '2で割って余りが0の場合
        If i Mod 2 = 0 Then
            'ループをスキップ
            GoTo Continue
        End If
    
        MsgBox (i & "を2で割った余りは、0ではなく" & i Mod 2 & "です")
        
Continue:
    Next

End Sub

備考

・一般的に「GoTo文はスパゲッティコードの原因になるため使用すべきでない」と言われている。

・だが多少使用した程度でスパゲッティコードになったりはしない。

・多少使用する程度ならば、GoTo文を使用しても問題無い。

・使い方や程度が適切ならば、GoTo文は他の機能と同じく便利な機能である。

タイトルとURLをコピーしました