Do Loop While文を使った繰り返し処理

Do ... Loop While 文を使用することで条件式が True の間、同じ処理を繰り返し行うことができます。 Do While ... Loop 文と似ていますが、 Do ... Loop While 文ではまず処理を一度実行したあとで条件式の評価が行われるため必ず処理を 1 回実行したい場合に便利です。ここでは Excel VBA で Do ... Loop While 文を使い繰り返し処理を行う方法について解説します。

(2022 年 06 月 14 日公開 / 2022 年 06 月 14 日更新)

Do Loop While文を使った繰り返し処理

Do ... Loop While 文の構文は下記のようになります。

Do
    (条件式がTrueの時に行う処理1)
    (条件式がTrueの時に行う処理2)
Loop While 条件式

「Do While ... Loop」との違いは条件式の評価がループを一度行った後に行われるということです。つまり「Do」の行と「Loop」の行の間に書かれた処理は少なくとも必ず1回は実行されます。最初に1回実行された後は条件式を評価されて「True」だった場合には先頭に戻ってまだ処理が実行されます。

この構文は Do While ... Loop 文を使って次のように書き換えることが出来ます。

(条件式がFalseの時に行う処理1)
(条件式がFalseの時に行う処理2)

Do While 条件式
    (条件式がFalseの時に行う処理1)
    (条件式がFalseの時に行う処理2)
Loop

また「Do ... Loop While」構文にも条件式が「False」の場合のみ繰り返しを実行する「Do ... Loop Until」構文が用意されています。

構文は下記のようになります。

Do
    (条件式がFalseの時に行う処理1)
    (条件式がFalseの時に行う処理2)
Loop Until 条件式

「Do ... Loop While」構文との違いは繰り返しを継続する条件が、条件式が「False」の場合になるという点だけです。

サンプルプログラム

では簡単なサンプルで試してみましょう。

Sub テスト()
    Dim x As Integer

    x = 1

    Do
        x = x * 3
    Loop while x < 100

    Range("A1").Value = x

End Sub

上記のマクロを実行すると次のようになります。

繰り返し処理

あまり良い例でもないのですけど、3を累乗していって100を最初に超えた数値を求めています。

-- --

Excel VBA で Do ... Loop While 文を使い繰り返し処理を行う方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。