【VBA】 while wend、Do while loop、do loop while、do loop until の違い

スポンサード リンク

このページでは VBA や VBS 環境における繰り返し構文の比較に関して説明します。
while 〜 wend は過去の互換性のため残っていますが現在ではあまり使用されません。(途中でループが抜けられない点からも不便です。)

do loop に関しては三通りの使用方法がありそれぞれ特徴があります。特徴を見極めて使い分ける必要があります。

スポンサード リンク

(注意)分かりやすく簡単に記載しており、一部の環境や分野では記載内容が異なる可能性があります。あくまでも参考程度でお読みください。

比較表

比較は以下の表の通りとなります。

説明while wendDo while loopdo loop whiledo loop until
基本形while (条件) (式) wend
do while (条件) (式) loopdo (式) loop while (条件)do (式) loop until (条件)
条件によっては一度も実行されない。
条件によっては一度も実行されない。
必ず一回は実行される。
必ず一回は実行される。
i=0
while (i<>0)

msgbox cstr(i)

wend

(*)初回から条件に合致しないため、処理は一切行われない。
i=0
Do while i<>0

msgbox cstr(i)

Loop

i=0
do

msgbox cstr(i)

loop while (i<>0)

(*)条件に一致しないが、必ず一回実行される。
i=0
do

msgbox cstr(i)

loop until (i=0)

(*)条件に一致しないが、必ず一回実行される。
途中でループを抜ける方法なし。(関数化して exit sub で抜けるなどの方法はあるがきれいではない。)
exit do で可能exit do で可能exit do で可能
どんな場合使うメリットなし。
過去の構文の互換性のため残っており、今はあまり使われない。代わりに do 文(右記のどれか)を使うべき。
・条件によっては一度も処理を実行せず抜けたい場合。
・途中で抜けたいループ
・必ず一回処理が実行される
・途中で抜けたい場合あり
・while / until は好みによって使い分ける。
・必ず一回処理が実行される
・途中で抜けたい場合あり
・while / until は好みによって使い分ける。

参考:
VBScript エラーコード 一覧
VBSで無限ループした loopを強制停止する方法
VBA サンプルコード







【注意】本ページは著作権で保護されています。内容は何人も補償しません。時間的あるいは金銭的損失等、一切保証しません。

理解しやすく記載されており、一部不正確な記載がある可能性があります。ご自身の責任で参考にしてください。