
ExcelVBA ループ処理は、データを効率的に処理するために使用されます。その中で特定の条件で「ループをスキップ」「ループを強制終了」「最終行まで処理」「ループから抜ける」などの操作は非常に重要です。使い方や注意点など、サンプルコードをもとに具体的に解説します。
「VBAスキルを証明できれば、社内評価アップにつながるかもしれません
👉 VBAを学んで社内評価を上げる方法はこちら
目次
Excel VBA ループ処理途中でスキップの利用シーン
以下のようなシーンで利用で表示します。
1.ループスキップ ( Continue )
特定の条件で処理をスキップしたいとき(例: 空白セルを無視)
2.ループ強制終了 ( Exit )
条件が満たされた場合にループ全体を終了したいとき(例: データが見つかったら処理を終了)
3.最終行まで ( 最終行の自動取得 )
データが存在する最後の行まで処理を繰り返したいとき(例: データが動的に変化する場合)
4.ループから抜ける ( Exit For / Exit Do )
Exit 文でループから抜けて処理を続行したいとき。
Excel VBA ループ処理途中でスキップの使い方と注意点
(1) ループスキップ
ループ内で If 文を使用し、条件が満たされた場合は GoTo や Exit を使わず、単純に処理を次に進める。
注意点:GoTo を多用するとコードが読みづらくなるので注意。
(2) ループ強制終了
Exit For や Exit Do を使うことで、必要なタイミングでループ全体を終了できる。
注意点:必要のない箇所で使用すると意図しない結果になる可能性があります。
(3) 最終行まで
最終行の取得方法として、 Cells(Rows.Count, 列番号).End(xlUp).Row を活用。
注意点:最終行取得では列に空白が含まれていると正確に取得できない場合があるため、データの整合性を確認しましょう。
Excel VBA ループ処理途中でスキップ サンプルコード
「VBAスキルを証明できれば、社内評価アップにつながるかもしれません
👉 VBAを学んで社内評価を上げる方法はこちら
標準モジュール(ループスキップ)
Option Explicit
Sub LoopSkipExample()
Dim i As Long
For i = 1 To 10
' 偶数の場合スキップ
If i Mod 2 = 0 Then
Debug.Print "スキップ: " & i
GoTo SkipNext
End If
' 偶数以外は処理
Debug.Print "処理対象: " & i
SkipNext:
Next i
End Sub
標準モジュール(ループ強制終了)
Option Explicit
Sub LoopExitExample()
Dim i As Long
For i = 1 To 10
' 条件が満たされたら終了
If i = 5 Then
MsgBox "終了: " & i
Exit For
End If
Debug.Print "処理中: " & i
Next i
End Sub
標準モジュール(最終行までのループ)
Option Explicit
Sub LoopToLastRow()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
' シートの設定
Set ws = ThisWorkbook.Sheets("Sheet1")
' 最終行を取得
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' 最終行まで処理
For i = 1 To lastRow
Debug.Print "行番号: " & i & " | 値: " & ws.Cells(i, 1).Value
Next i
End Sub
標準モジュール(ループから抜ける)
Option Explicit
Sub LoopBreakExample()
Dim i As Long
Do While True
i = i + 1
Debug.Print "処理中: " & i
If i = 5 Then
MsgBox "ループ終了: " & i
Exit Do
End If
Loop
End Sub
Excel VBA ループ処理途中でスキップ|まとめ
操作 | 目的 | 構文 |
ループスキップ | 特定の条件で処理をスキップ | If 条件 Then Continue |
ループ強制終了 | 条件に合致したらループ全体を終了 | Exit For / Exit Do |
最終行まで | 動的に変化するデータを全て処理 | Cells(Rows.Count, 列番号).End(xlUp).Row |
ループから抜ける | 必要に応じて柔軟にループから抜けて次の処理に移る | Exit |
これらを使い分けることで、効率的でわかりやすいコードを書けるようになります。
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。
「VBAスキルを証明できれば、社内評価アップにつながるかもしれません