ループを終了し次のループに移る - VBA

VBAでループを終了し次のループに移るコードを紹介します。

概要

VBAでループを終了し次のループに移る場合、Visual Basicでは Continue For文が利用できますが、VBAはVisual Basic 2.0 のContinue文がまだなかった頃がもとになっているため、Continue文は利用できません。VBAで Continue文と同様の処理を実現する場合はGoto文を利用します。

プログラム例

Excelでシートにボタンを設置します。

コード

ボタンクリック時に実行されるマクロに下記のコードを記述します。
Sub Button1_Click()

For i = 1 To 10
  
  Cells(i, 5).Value = "項目" & i
  If (i Mod 2 = 1) Then
    Cells(i, 6).Value = "奇数"
    GoTo LoopLast
  End If
  
  If i>=7 Then
    Cells(i, 7).Value = "PP"
  End If

LoopLast:
Next

End Sub

解説

Forループで10回ループします。ループで1行目から10行目までの5列目のセルに「項目n」(nはループカウンタ番号)の文字列を表示します。この時、項目の番号が奇数であれば6列目に「奇数」の文字列を表示し、次のループに移ります。奇数でない場合はループカウンタがⅦ以上であれば、7列目に「PP」の文字列を表示します。
Continue文が使える場合、Goto LoopLast の部分にContinue文を記述すればよいですが、Continue文が無いため、Goto文でループの最後にジャンプします。Goto文のラベル LoopLast はループの最後に設置します。

実行結果

Excelシートでボタンをクリックします。項目1~項目10の文字列が表示され、奇数の要素はF列のセルに「奇数」の文字が表示されます。奇数でなく項目7以上であればG列のセルに「PP」の文字が表示されます。

著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2023-12-11
作成日: 2018-08-31
iPentec all rights reserverd.