【VBA】空白行のみを、1コードで削除する

空白行のみを、1コードで削除することが
できます!

1コードで削除できるため、
 ・ループ処理で各行を確認し、空白がどうかを判定する
といったやり方は不要です!

ループ処理が不要のため
処理の高速化が期待できます!

SpecialCells(xlCellTypeBlanks).EntireRow.Delete」を
使用して、空白行のみを削除します。

PR

VBAコード

例えば
 ・シート「sample」上に、以下の表のようにB列のいくつかのセルが空白となっている
場合に、

B列が空白の行が2行ある
B列が空白の行が2行ある

B列が空白セル(=空白行)のみを削除するために、以下のコードを実行します。

Sub sample()
    '空白行のみを削除
    Worksheets("sample").Range("B3:B7").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

「Rangeオブジェクト」の「SpecialCells」プロパティにより、「Rangeオブジェクト」を取得しています。
※「SpecialCells」プロパティには引数として「xlCellTypeBlanks」を指定しています。

「Rangeオブジェクト」の「EntireRow」プロパティにより、さらに「Rangeオブジェクト」を取得しています。

「Rangeオブジェクト」の「Delete」メソッドにより、行の削除をしています。

PR

実行結果

B列が空白セル(=空白行)となっている行のみを、削除できました。

B列が空白セル(=空白行)となっている行のみが削除された
B列が空白セル(=空白行)となっている行のみが削除された
PR

参考

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「Rangeオブジェクト」の「SpecialCells」プロパティ


●「Rangeオブジェクト」の「EntireRow」プロパティ


●「Rangeオブジェクト」の「Delete」メソッド