Excel VBAで空白行を削除し詰める方法:Rows.Deleteメソッド使用

Rows.Deleteメソッドで空白行を削除するVBAです。



Homeに戻る > Excel シートのTipsへ

知らず知らずのうちに空白行が増え、整理したい場合などに使用するVBAです。

空白行の削除は、オートフィルタ機能やVLOOKUP関数を使って行うことが可能ですが、VBAを使うとそれにプラスした処理を同時に行うことが可能になります。

例えば削除した記録を残すために、前後の行にマークを付けるなどです。

方法はForループで総当たりで調べ、見つかればRows.Deleteメソッドを使用し削除します。

削除関連のVBA「セルの挿入とセルの削除」も掲載していますので、参考にしてください。



空白行を削除し詰めるExcel VBA

Excel VBA シートコード

コマンドボタンクリックイベントの説明

  1. 開始する行をセットします。
  2. 終了する行をセットします。
  3. Forで開始行から終了行までループします。
  4. Ifでセルが空白かどうかチェックします。
  5. 空白ならば、Rows.Deleteメソッドで行を削除します。
Private Sub CommandButton1_Click()
    Dim i As Long
    Dim toprow As Long
    Dim bottomrow As Long
    
    '開始する行
    toprow = 8
    '終了する行
    bottomrow = 30
    
    For i = bottomrow To toprow Step -1
        If ActiveSheet.Cells(i, 1) = "" Then
            'A列が空白なら行削除
            Application.Rows(i).Delete
        End If
    Next
End Sub

VBEの入力画面

Option Explicitを入力し、バグの予防をしています。

VBEの入力画面


Excel実行結果

実行前

実行前のシート

実行後、空白が削除され詰められている
実行後のシート

Excel2013の実行画面を追加しました。

Excel2013でも問題なく実行できました。

Excel2013の実行画面


Homeに戻る > Excel シートのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved