スポンサーリンク

【Excel VBA】Do Untilで指定した条件を満たすまで繰り返す【マクロ】

スポンサーリンク
スポンサーリンク
この記事は約2分で読めます。

Do Untilによる繰り返し処理について確認します。

Do Untilは条件を満たさない間は繰り返す。

言い換えると条件を満たすまで繰り返す処理です。

Do Untileで条件を満たすまで繰り返す

書式

Do Until 条件式

処理

Loop

 

Do

処理

Loop Until 条件式

条件式をLoopの後に持ってくることで、最低1回は実行します。

例1:条件を満たすまで繰り返す

iが10でない場合はi番目の行,1列目のセルにiの値を入力する処理です。

iが10以上になるまで繰り返します。

実行結果

条件を満たすまで繰り返す

例2:最低1回は実行する

iが10以下でない場合、i行目、1列目のセルにiの値を入力します。

iが10以下になるまで繰り返します。

実行結果です。

Loopの後に条件を入力して、条件を満たすまで繰り返す

iを宣言した後、すぐに1が代入されているため、ループ内の条件を満たしています。

そのため、本来ならループ内の処理は実行されませんが、今回は条件式がLoopの後に来ているため、最低1回は実行されます。

実行結果で1が入力されているのはそのことが理由です。

条件式をLoopの後に置くことで最低1回は実行する処理になります。

無限ループに注意

条件式によっては無限ループに陥るため、注意が必要です。

実行結果です。

Do Untilは条件式によっては無限ループになるiが10以下でない限り処理を実行します。

しかし、初めにiは11が代入されており、繰り返す度にiは1が加えられていくため、永遠にiが10以下になることはありません。

そのため、無限ループになってしまいます。

まとめ

  • Do Untileは条件を満たすまで繰り返す
  • Do Whileは条件を満たす限り繰り返す
  • 条件式によっては無限ループになるため注意
  • 条件式をLoopの後に書けば、最低1回は実行する

Excel VBAの学習にはこちらの書籍を使っています。

  

2冊目の本はKindle Unlimited対象です。

月額1,000円程で、対象の本がいくらでも読み放題なので、学習するにはもってこいのサービスです。ぜひ活用しましょう。

コメント