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

Do Until ... Loop 文を使用することで条件式が False の間、同じ処理を繰り返し行うことができます。ここでは Excel VBA で Do Until ... Loop 文を使い繰り返し処理を行う方法について解説します。

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

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

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

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

この構文の場合、条件式が「False」の間は「Do」と「Loop」の間に書かれた処理を繰り返し行います。

例えば前のページのサンプルは次のように記述することが出来ます。

Dim sum As Integer
Dim x As Integer

sum = 0
x = 1

Do Until x > 10
    sum = sum + x

    x = x + 1
Loop

Range("A1").Value = sum

動作などは「Do While ... Loop」の場合と同様です。異なるのは条件式が「False」の間だけ繰り返しが実行されるということです。

ただ、条件式が「False」の間だけ実行したい場合には、 Do While ... Loop 文と論理演算子を使って次のように記述する事もできます。

Dim sum As Integer
Dim x As Integer

sum = 0
x = 1

Do While Not x > 10
    sum = sum + x

    x = x + 1
Loop

Range("A1").Value = sum

論理演算子の「Not」はその後に書かれた条件式の結果を反転させます。その為、「Do Until ... Loop」構文で記述できる内容は「Do While ... Loop」構文でも記述することが出来ます。

「Do While」と「Do Until」の両方を使うとケアレスミスの原因となりますので、条件式の記述で「False」の場合だけ実行するというような記述の方が望ましい場合には論理演算子の「Not」を使って記述したほうがいいのではと思います。(論理演算子については「演算子」を参照して下さい)。

サンプルプログラム

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

Sub テスト()
    Dim sum As Integer
    Dim x As Integer

    sum = 0
    x = 1

    Do Until x > 10
        sum = sum + x

        x = x + 1
    Loop

    Range("A1").Value = sum

End Sub

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

繰り返し処理

今回のサンプルでは1から順に10まで加算した値をセルに表示しています。

-- --

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

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

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