【VBA】Forループで途中を飛ばす方法(Continue)

今回は、VBAでForループを途中で飛ばす方法を紹介します。

ループ処理するけれど、特定の条件の時は処理を飛ばしたいことがありますよね。

VBAでループを飛ばしたい時には、If文とGoTo文を組み合わせたコードを書きます。

サンプルコードを例に説明していきます。

Forループで途中を飛ばす方法(Continue)

Sub SkipForLoop()
    
    Dim i As Long
    For i = 1 To 10
        
        'iが3が3の倍数の時は処理を飛ばす
        If i Mod 3 = 0 Then GoTo Continue
        
        Debug.Print i
        
Continue:
    Next
    
End Sub

サンプルコードとして、iが3の倍数の時は処理を飛ばすコードを書きました。

ポイントはGoTo Continueの箇所です。

GoToは特定の場所まで処理を飛ばす命令です。

If文の条件にマッチする時(iが3の倍数)は、GoTo文でContinue:の箇所まで処理を飛ばしています。

こうすることでNextの直前まで飛ばして、次のループへと進んでいます。

なぜContinueとするのか

GoToの後の文字は何でも良いのですが、Continueをおすすめします。

VBAではForループを飛ばす命令文がないのですが、C言語ではContinueというループを飛ばす命令文があります。

C言語に慣れた人がコードを読んだ時に、ああこれはループを飛ばしたいんだなと理解しやすいようにContinueを使っておくのがベターだと思います。

《VBA中級者向けの本》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。

created by Rinker
技術評論社
¥3,608 (2022/05/20 10:38:41時点 Amazon調べ-詳細)

自分で作るのが難しいと感じたら、プロに作ってもらう手もあります。
こちらの記事でおすすめのプログラマーを紹介しています

《IT未経験-特化型サービス》



他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい