もくじ
VBA(Visual Basic for Applications)では、同じ処理を繰り返す際にループ処理を使用します。
ループを適切に活用することで、効率的なコードを書くことができます。
本記事では、VBAのループ処理の基本と、各ループの使い方について解説します。
ループ処理とは?
ループ処理とは、一定の条件を満たすまで、同じ処理を繰り返す仕組みです。
VBAでは以下のようなループが利用できます。
For Next ループ
For Each Next ループ
Do While ループ
Do Until ループ
For Next ループ
一定回数処理を繰り返す場合に使用します。
基本構文
以下のコードは、1から10までの値を出力します。
Dim i As Integer
For i = 1 To 10
Debug.Print i
Next i
Stepでカウンタ変数を指定した値ずつ増減させる方法
Stepでカウンタ変数を指定した値ずつ増やす
以下のコードでは、1, 3, 5, 7, 9 と2ずつ増加します。
Dim i As Integer
For i = 1 To 10 Step 2
Debug.Print i
Next i
Stepでカウンタ変数を指定した値ずつ減らす
以下のコードでは、10, 8, 6, 4, 2 と2ずつ減少します。
Dim i As Integer
For i = 10 To 1 Step -2
Debug.Print i
Next i
For Next ループを途中で抜ける方法
Exit For
を使用することで、ループを途中で抜けることができます。
以下のコードは、iが5になった時点でループを終了します。
Dim i As Integer
For i = 1 To 10
If i = 5 Then
Exit For
End If
Debug.Print i
Next i
For Each Next ループ
コレクションや配列の要素を順番に処理する場合に使用します。
基本構文
以下のコードは、現在のブック内のすべてのシート名を出力します。
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Debug.Print ws.Name
Next ws
For Each Next ループを途中で抜ける方法
Exit For
を使用することで、ループを途中で抜けることができます。
以下のコードは、"Sheet3"
が見つかった時点でループを終了します。
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "Sheet3" Then
Exit For
End If
Debug.Print ws.Name
Next ws
Do While ループ
条件を満たしている間、処理を繰り返します。
基本構文
以下のコードは、i
が10以下の間、処理を繰り返します。
Dim i As Integer
i = 1
Do While i <= 10
Debug.Print i
i = i + 1
Loop
Do While ループを途中で抜ける方法
Exit Do
を使用することで、ループを途中で抜けることができます。
以下のコードは、i
が5になった時点でループを終了します。
Dim i As Integer
i = 1
Do While i <= 10
If i = 5 Then
Exit Do
End If
Debug.Print i
i = i + 1
Loop
Do Until ループ
条件を満たすまで、処理を繰り返します。
基本構文
このコードは、i
が10を超えるまで処理を繰り返します。
Dim i As Integer
i = 1
Do Until i > 10
Debug.Print i
i = i + 1
Loop
Do Until ループを途中で抜ける方法
Exit Do
を使用することで、ループを途中で抜けることができます。
以下のコードは、i
が5になった時点でループを終了します。
Dim i As Integer
i = 1
Do Until i > 10
If i = 5 Then
Exit Do
End If
Debug.Print i
i = i + 1
Loop
まとめ
VBAのループ処理にはさまざまな種類があり、状況に応じて使い分けることが重要です。
以下の表は、各ループ処理の特徴と使いどころをまとめたものです。
ループの種類 | 使用用途 |
---|---|
For Next | 一定回数の繰り返し |
For Each Next | コレクションや配列の要素ごとの処理 |
Do While | 条件が満たされている間、繰り返し |
Do Until | 条件が満たされるまで、繰り返し |
適切なループ処理を使うことで、VBAのコードをよりシンプルで効率的にすることができます。