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