For文 VBAで自動化 VBAテクニック集 VBA一覧 文法・構文

【VBA】For文:空白行まで繰り返す処理方法

Excel VBAを使用してデータを処理する際には、データが空白行で区切られているケースがあります。こうした場合、For文と組み合わせて空白行を検出し、その点で処理を停止する方法が有効です。

処理の基本構造

以下のサンプルコードは、Excelのシート上のデータを一行ずつ読み取り、空白行に達するまで特定の処理(この例ではセルの内容をイミディエイトウィンドウに出力)を行います。

Sub ProcessUntilBlankRow()

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim i As Long

' シートのデータを1行目からチェック
For i = 1 To ws.Rows.Count

' 空白行を検出した場合、ループを抜ける
If IsEmpty(ws.Cells(i, 1).Value) Then

Exit For

' 空白でない場合、その行のデータを処理
Debug.Print ws.Cells(i, 1).Value

Next i

End Sub

  • 【コード解説】
    ワークシートの設定
    最初に、処理対象のワークシートをws変数に設定します。
  • For文での行の繰り返し処理
    For i = 1 To ws.Rows.Countというループを使って、ワークシートの1行目から最終行までのデータを順に調べます。ws.Rows.Countはシートの行数を返しますが、通常はデータのある範囲のみを対象とした方が効率的です。
  • 空白行の検出とループの終了
    IsEmpty(ws.Cells(i, 1).Value)関数を使用して、各行の第1列目が空白かどうかをチェックします。空白行が検出された場合、Exit ForステートメントによりForループを直ちに抜けます。【VBA】Exit Forの入れ子(ネスト)する方法:For文
  • データの処理
    空白行でなければ、その行のデータ(ここでは第1列の値)をイミディエイトウィンドウに出力します。

まとめ

この方法を使用することで、Excel VBAを使ったデータ処理を効率化し、不必要な処理を避けることができます。特にデータが不連続で存在する場合や、データの区切りが空白行で示されている場合に有効です。

【VBA】For文:繰り返し処理|パターン別紹介

-For文, VBAで自動化, VBAテクニック集, VBA一覧, 文法・構文