Vbaで空白行を削除する方法(例あり)


VBA で次のメソッドを使用して空白行を削除できます。

方法 1: 特定の範囲の空白行を削除する

 Sub DeleteEmptyRowsInRange()
    Sheets(" Sheet1 ").Select
    Range(" A1:B10 ").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

この特定のマクロは、 Sheet1の範囲A1:B10からすべての空白行を削除します。

方法 2: シート全体の空白行を削除する

 Sub DeleteEmptyRowsInSheet()
  
   'turn off screen updating for faster performance
    Application.ScreenUpdating = False
  
    Dim i As Long

    With ActiveSheet

    For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(i)) = 0 Then
            ActiveSheet.Rows(i).Delete
       End If
    Next

    End With
  
    'turn screen updating back on
    Application.ScreenUpdating = True
  
End Sub

この特定のマクロは、アクティブ シート全体からすべての空白行を削除します。

次の例は、各メソッドを実際に使用する方法を示しています。

例 1: 特定の範囲の空白行を削除する

さまざまなバスケットボール選手に関する情報を含む次のデータセットが Excel にあるとします。

次のマクロを作成して、このシートの範囲A1:B10からすべての空白行を削除できます。

 Sub DeleteEmptyRowsInRange()
    Sheets(" Sheet1 ").Select
    Range(" A1:B10 ").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

このマクロを実行すると、次の出力が表示されます。

指定した範囲からすべての空白行が削除されていることに注意してください。

例 2: シート全体の空白行を削除する

さまざまなバスケットボール選手に関する情報を含む次のデータセットが Excel にあるとします。

次のマクロを作成して、シート全体からすべての空白行を削除できます。

 Sub DeleteEmptyRowsInSheet()
  
   'turn off screen updating for faster performance
    Application.ScreenUpdating = False
  
    Dim i As Long

    With ActiveSheet

    For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(i)) = 0 Then
            ActiveSheet.Rows(i).Delete
       End If
    Next

    End With
  
    'turn screen updating back on
    Application.ScreenUpdating = True
  
End Sub

このマクロを実行すると、次の出力が表示されます。

シート全体からすべての空白行が削除されていることに注意してください。

追加リソース

次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。

VBA: セル値に基づいて行を削除する方法
VBA: 名前に特定のテキストが含まれている場合にシートを削除する方法
VBA: ファイルを削除する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です