前提
ループの中で、ある条件に一致した時に処理をスキップさせたいという場面はよくあると思います。
しかしVBSのforにはcontinueがありません。
なのでこのような書き方になります。
For i = 0 To cnt
If [処理を通したい条件] Then
'ここで処理する
End If
Next
これだと処理内容によってはネストがどんどん深くなっていってしまいます。
疑似continue
そこでdo loopを組み合わせて疑似的にcontinueを実現します。
forの中に一度だけループするdo loopを記述します。
For i = 0 To cnt
Do
If [処理をスキップしたい条件] Then Exit Do
'ここで処理する
Loop Until 1
Next
でもそのままだとネストの深さは解決しないので、下記のようにforとdo loopを一行で書きます。
For i = 0 To cnt : Do
If [処理をスキップしたい条件] Then Exit Do
'ここで処理する
Loop Until 1 : Next
これで無事?メイン処理のネストを一段浅くすることができました。
パッと見は違和感がありますが、見慣れれば重要な処理のネストが深くなるよりはいいかなと思います。
参考
[VBScript] ループ制御コマンド「Continue」っぽいものを美しく実装する > Z_ ̄∂
https://yozda.exblog.jp/9314000/