[ホーム] > [間違えやすい類語 IT編一覧] > [【VBA】 while wend、Do while loop、do loop while、do loop until の違い]
このページでは VBA や VBS 環境における繰り返し構文の比較に関して説明します。
while 〜 wend は過去の互換性のため残っていますが現在ではあまり使用されません。(途中でループが抜けられない点からも不便です。)
do loop に関しては三通りの使用方法がありそれぞれ特徴があります。特徴を見極めて使い分ける必要があります。
(注意)分かりやすく簡単に記載しており、一部の環境や分野では記載内容が異なる可能性があります。あくまでも参考程度でお読みください。
説明 | while wend | Do while loop | do loop while | do loop until |
基本形 | while (条件) (式) wend | do while (条件) (式) loop | do (式) 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 サンプルコード
[ホーム] > [間違えやすい類語 IT編一覧]
,