プログラミングにおいて、同じ処理を繰り返し実行する必要がある場合、ループ構造が非常に便利です。Excel VBAでは、Do While Loopを使用して、特定の条件がTrueである間、コードブロックを繰り返し実行できます。この記事では、Do While Loopの基本から、実用的な応用例までを解説します。
Do While Loopの基本的な構造
基本構文
Do While 条件
' 繰り返し実行されるコード
Loop
条件はループの実行を続けるかどうかを判断するために評価される式です。この条件がTrueの間、ループ内のコードが繰り返し実行されます。
基本動作のサンプルコード
countが1から5までインクリメントされ、その値がデバッグウィンドウに出力されます。
Dim count As Integer
count = 1
Do While count <= 5
Debug.Print count
count = count + 1
Loop
実践的な使用のサンプルコード
ワークシート内の特定の条件を満たす行を検索する
シート1の1列目が空白になるまで各行をループし、特定の条件を満たす行を探します。
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim row As Integer
row = 1
Do While ws.Cells(row, 1).Value <> ""
If ws.Cells(row, 1).Value = "特定の条件" Then
Debug.Print "条件を満たす行: " & row
End If
row = row + 1
Loop
ユーザー入力が条件を満たすまで繰り返す
ユーザーが5より大きい数字を入力するまで、繰り返し入力ボックスを表示します。
Dim userInput As String
Do
userInput = InputBox("5より大きい数字を入力してください", "ユーザー入力")
Loop While Val(userInput) <= 5
Debug.Print "入力された値: " & userInput
Do Loop文の活用注意点
・ループを制御するためには、ループ内で条件に影響する変数(この例ではcountやrow)を適切に更新することが重要です。
・無限ループを避けるため、ループの条件を慎重に設計してください。
・Do While Loopは、条件が初めからFalseである場合、ループ内のコードは一度も実行されません。少なくとも一度はコードを実行したい場合は、Do Loop While構文を検討してください。