next文のありがたみを知る

今、Excel VBAを使ってマクロを組んでるのですが、perlでいうnext文、Cでいうcontinue文が無いんですね。

nextは当たり前だと思っていた分、かなりカルチャーショックを受けました。

例えばループ中で、これこれの条件の時に処理をするということをやりたい場合、perlの場合は否定を使って、

if(~条件){

next;

}

処理

...

とすればいいところを、VBAだと、

if 条件 then

処理

...

end if

と書かなければなりません。

単一の条件分岐なら問題無いですが、条件分岐がいくつも生じる処理の場合、ネスト段数がやたら増えてしまい、条件が終わる箇所でend ifが連続して続くところがものすごく汚いです。

僕の場合、VBAを使ってネットの情報を収集するというのをやっているのですが、HTMLの構文は階層構造なので、条件分岐がどうしても多段になります。 例えば、これこれのclassを持つdivの子階層の、これこれのclassを持つdivの子階層の〜を処理するっていう場合ですね。

もちろんgoto文を使ってnextまがいのことは出来るのですが、gotoはインデント無しで書くというルールがあり、余計に汚く見えます。そもそもgotoって使用非推奨って学校で習いましたし(笑)

VBAには他にも色々と不満はありますが、nextが無いことほどの問題は無かったです。プロはこの問題に困って無いんでしょうか。または、解決手段が何かあったりするんですかね?