「エクセル マクロ 空白行削除」
「Exce VBA 空白の行 削除方法」
といった検索が行われているのを見かけることがあります。
Excelで空白行を削除するVBA(Visual Basic for Applications)マクロを探している方の検索です。
空白行を削除するマクロといっても、細かくヒヤリングしてみると、いろいろな要望が出てくることが多いのですが、とりあえず、アクティブなワークシートで行全体が空白のときにその行を削除するマクロをご紹介します。
▼空白の行全体を削除するマクロ
Sub DeletBlakRows()
Dim lngLstRow As Long
Dim lngLop As Long
lngLstRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
Application.ScreenUpdating = False
For lngLop = lngLstRow To 1 Step -1
If Application.WorksheetFunction.CountA(Rows(lngLop)) = 0 Then Rows(lngLop).Delete
Next lngLop
Application.ScreenUpdating = True
End Sub
まず、
lngLstRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
でアクティブセルの最終セルの行番号を取得します。
次の
Application.ScreenUpdating = False
で、処理速度を早くするために画面更新を停止しています。
ループ処理は、
For lngLop = lngLstRow To 1 Step -1
先に取得した最終行から1行目に向かって処理していきます。
実際に行削除を行う処理がループの中の
If Application.WorksheetFunction.CountA(Rows(lngLop)) = 0 Then Rows(lngLop).Delete
です。
IF文の
Application.WorksheetFunction.CountA(Rows(lngLop))
がExcelのVBAに慣れていない方の場合、見慣れない処理かもしれません。
これはVBAからワークシート関数を利用するときの記述方法です。
ワークシート関数のCOUNTA関数を使うことで、簡単に空白かどうかを調べることができます。
最後の
Application.ScreenUpdating = True
で、停止していた画面更新を元に戻しています。
トラックバック:0
- TrackBack URL
- Newer: 結局、WiMAXは買いなのか?
- Older: UQ WiMAXとイーモバイルの回線速度を調べてみました

