教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでDo~Loop文を使った繰り返し処理の方法

構文

構文は以下の通りです。

(構文①)

Do While 条件
    ' 繰り返す処理
Loop

(構文②)

Do Until 条件
    ' 繰り返す処理
Loop

解説

条件付きの繰り返し処理をする場合には、Do~Loop文が便利です。その中でも、上記構文①は、「条件を満たしている間」繰り返し処理をするには、Whileキーワードを組み合わせて構文を作ります。これは、条件がTrue(真)の間、繰り返し処理が行われます。また、上記構文②は、「条件を満たすまで」繰り返し処理をするには、Untilキーワードを組み合わせて構文を作ります。こちらは、条件がFalse(偽)の間、繰り返し処理が行われます。

プログラミング例

具体的なプログラミング例を紹介します。

(例1)「条件を満たしている間」処理を実行

Sub 数を数える()
    Dim 数字 As Integer
    数字 = 1
    Do While 数字 <= 10
        MsgBox 数字
        数字 = 数字 + 1
    Loop
End Sub

上記のプログラムは、数字が10以下の間は数字の内容をMsgBoxで表示します。

(例2)「条件を満たすまで」処理を実行

Sub 数を数える()
    Dim 数字 As Integer
    数字 = 1
    Do Until 数字 > 10
        MsgBox 数字
        数字 = 数字 + 1
    Loop
End Sub

上記のプログラムは、数字が10以上になるまで数字の内容をMsgBoxで表示します。

まとめ

Do~Loop文は、繰り返し処理を行う際にとても便利な構文です。Whileキーワードを使って「条件を満たしている間」繰り返すか、Untilキーワードを使って「条件を満たすまで」繰り返すか、どちらかを選んで使ってみてください。