【VBA】表の空白行を削除する

前提

ここではフィルタは使用せずに、表の空白行を削除する方法を記載する。

サンプルプログラム概要

以下のような表に対し、

例えば「B列(ID列)が空白」であった場合、当該行を削除し以下のようにする。

サンプルプログラム

ここでは「B列(ID列)が空白の行」であった場合、当該行を削除するプログラムを記載する。

'変数の宣言を必須
Option Explicit

Sub sample()
    'シート名
    Const SHEET_NAME As String = "サンプル"
    '表の一番左上のセル
    Const START_RENGE_STR As String = "B2"
    '空白かどうかを確認する列 ※ここではB列(=2)を指定
    Const TARGET_COLUMN As Integer = 2

    Dim ws As Worksheet
    Dim startRange As Range
    Dim startRow As Double
    Dim endRow As Double
    
    Set ws = Worksheets(SHEET_NAME)
    
    '表の一番左上のRANGEオブジェクトを取得
    Set startRange = ws.Range(START_RENGE_STR)
    '表の開始行を取得
    startRow = startRange.Row
    '表の最終行を取得
    With startRange.CurrentRegion
        endRow = .Item(.Count).Row
    End With
    
    '当該列のセルが空白の場合、行を削除
    Range(ws.Cells(startRow, TARGET_COLUMN), _
          ws.Cells(endRow, TARGET_COLUMN)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete

End Sub

結果

「B列(ID列)が空白の行」のみ削除された。

タイトルとURLをコピーしました