- Home ›
- Excel VBA入門 ›
- 繰り返し処理 ›
- HERE
必ず1度は実行する
次に同じような構文ですが「Do ... Loop While」構文について見ていきます。
構文は下記のようになります。
Do (条件式がTrueの時に行う処理1) (条件式がTrueの時に行う処理2) Loop While 条件式
「Do While ... Loop」との違いは条件式の評価がループを一度行った後に行われるということです。つまり「Do」の行と「Loop」の行の間に書かれた処理は少なくとも必ず1回は実行されます。最初に1回実行された後は条件式を評価されて「True」だった場合には先頭に戻ってまだ処理が実行されます。
この構文は次のように書き換えることが出来ます。
(条件式がFalseの時に行う処理1) (条件式がFalseの時に行う処理2) Do While 条件式 (条件式がFalseの時に行う処理1) (条件式がFalseの時に行う処理2) Loop
必ず1回は実行させたい場合には便利な構文です。
サンプルプログラム
では簡単なサンプルで試してみましょう。
Sub テスト() Dim x As Integer x = 1 Do x = x * 3 Loop while x < 100 Range("A1").Value = x End Sub
上記のマクロを実行すると次のようになります。
あまり良い例でもないのですけど、3を累乗していって100を最初に超えた数値を求めています。
Do ... Loop While 構文
また「Do ... Loop While」構文にも条件式が「False」の場合のみ繰り返しを実行する「Do ... Loop Until」構文が用意されています。
構文は下記のようになります。
Do (条件式がFalseの時に行う処理1) (条件式がFalseの時に行う処理2) Loop Until 条件式
「Do ... Loop While」構文との違いは繰り返しを継続する条件が、条件式が「False」の場合になるという点だけです。
( Written by Tatsuo Ikura )