【VBA】Do Loopで条件を満たすまで繰り返し処理をしよう!

Excel VBA

「この条件に合っている間はこの処理を繰り返して、条件に合わなくなったら繰り返しの処理を辞めたい」と思った時に使うのがDo Loopステートメントです!

今回はDo Loopステートメントを使用した繰り返し処理についてご紹介します!!

Do Loopを使用する時は下記の内容に注意してください!

Do Loopステートメントは良くも悪くも条件を満たすまで動作します。

作成途中のマクロでは意図していなくても、記述ミスで処理が永遠に終わらないようになってしまっている事があり、処理が終わらない場合はプログラムを強制終了させる必要があります

マクロって止めれるの?強制終了?と思った方は、強制終了について別の記事で解説していますので事前に確認しておきましょう。

【Excel】マクロを強制終了する方法 Win/Mac対応
「やばっ!マクロ実行したけどこのままだとシート全部上書きされちゃう!!」マクロを実行した後やっぱり中止したいという時の為に、マクロ実行中にプログラムを強制終了させる方法解説します!
スポンサーリンク

「条件を満たしている間」処理を繰り返す

Do Whileは条件を満たしている間、同じ処理を繰り返すステートメントです。

Whileの位置を変える事で、条件を満たしているか判定する場所を変える事が出来ます。
このステートメントを使用する前後の処理に応じて変えてみましょう。

WhileはDoかLoopどちらかの後ろに記述する必要があり、両方に記載する事は出来ません。

Do while ~ Loop

Do while ~ Loopの構文は下記のようになっています。

上記の構文を使用して作成したサンプルがこちらです。
iが3以下の時は処理を繰り返します。

Do ~ Loop While

Do ~ Loop Whileの構文は下記のようになっています。

上記の構文を使用して作成したサンプルがこちらです。
iが3以下の時は処理を繰り返します。

スポンサーリンク

「条件を満たすまで」処理を繰り返す

WhileがUntilに変わると、「条件を満たすまで」処理を繰り返す事が出来ます。

Untilの位置はWhileと同様に変える事が出来ますので、こちらも使用する前後の処理に応じて変えてみましょう。

Do Until ~ Loop

Do Until ~ Loopの構文は下記のようになっています。

上記の構文を使用して作成したサンプルがこちらです。
iが3になるまで処理を繰り返します。

Do ~ Loop Until

Do ~ Loop Untilの構文は下記のようになっています。

上記の構文を使用して作成したサンプルがこちらです。
iが3になるまで処理を繰り返します。

スポンサーリンク

まとめ

今回ご紹介したDo Loopの他にも、繰り返し処理に使用出来るステートメントはいくつかあります。

For ~ NextやFor ~ eachステートメントでもifで処理を抜けてしまえば同じような事が出来ますので、始めはDo Loop使わなくても大丈夫な気がしてきますよね。

自分だけが使用する時はそれでも問題ないかもしれませんが、他の人も見る可能性がある場合は適切なステートメントを使用する事で理解しやすいコードになります。

共有する予定が無い場合でも思わぬ所で役に立つ事がありますので、適切なステートメントを使用する練習と考えて積極的に使用する事をオススメします。

【VBA】For Each ~ Nextで一括処理をしよう!!
「この範囲の全部のセルに同じ処理がしたい、、、」「この配列の要素全部に同じ処理がしたい、、、」そんな事を思った事はないでしょうか。そんな時にぴったりなのがFor Each ~ Nextステートメントです!!
【Excel VBA】for文を使って処理を繰り返そう!便利なネストって?
「この処理を何度も繰り返したい」そう思った時に使うのがFor~Next文です。説明よりもまずは構文を見てみましょう。使えると非常に便利なネストについても解説します。

コメント

タイトルとURLをコピーしました