教えて!ExcelVBA!

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

【ExcelVBA 構文】Do~Loop文(繰り返し処理)の使い方を教えて!

構文

構文は以下の通りです。

Do
    ' 繰り返し処理
Loop Until 条件式

Do~Loop文は、条件を満たす限り繰り返し処理を行うための制御文です。Do~Loop文では、まず「Do」キーワードを使ってループの開始を示します。その後に繰り返し処理を記述し、ループの終了条件を「Loop Until 条件式」で指定します。条件式がFalseと評価されるまで、繰り返し処理が実行され続けます。

使い方

以下では、具体的な使い方の例をいくつか紹介します。

1.固定回数の繰り返し処理

固定回数の繰り返し処理を行い、メッセージを表示する例を紹介します。

Sub RepeatMessage()
    Dim count As Integer
    count = 1
    Do
        MsgBox "メッセージを表示します。"
        count = count + 1
    Loop Until count > 5
End Sub

この例では、メッセージを5回繰り返し表示する処理を行っています。変数countを初期値1から開始し、繰り返し処理内でメッセージを表示し、countを1ずつ増やしています。ループはcountが5より大きくなった時点で終了します。

2.条件に基づく繰り返し処理

条件に基づいて繰り返し処理を行い、合計値を計算する例を紹介します。

Sub CalculateSum()
    Dim total As Integer
    total = 0
    Do
        Dim value As Integer
        value = InputBox("値を入力してください。")
        If value = 0 Then
            Exit Do
        End If
        total = total + value
    Loop
    MsgBox "合計値は" & total & "です。"
End Sub

この例では、ユーザーからの入力を受け付け、0が入力されるまで繰り返し処理を行い、その値の合計を計算します。ユーザーが0を入力すると、ループが終了し、最終的な合計値が表示されます。

3.条件に基づく範囲の繰り返し処理

特定の条件に基づいて範囲内の値を繰り返し処理する例を紹介します。

Sub RepeatInRange()
    Dim i As Integer
    i = 1
    Do
        If i Mod 2 = 0 Then
            MsgBox i
        End If
        i = i + 1
    Loop Until i > 10
End Sub

この例では、1から10までの数値の中から偶数の値のみを表示します。変数iを1から開始し、繰り返し処理内でiが偶数の場合にのみメッセージを表示します。ループはiが10を超えた時点で終了します。

まとめ

Do~Loop文は、条件を満たす限り繰り返し処理を行うための重要な機能です。Do~Loop文を使うことで、柔軟な繰り返し処理を実現することができます。是非活用してください。