- 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 )
OfficePro