Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » 空白行を削除するExcelマクロ

空白行を削除するExcelマクロ

対象:Excel2002, Excel2003, Excel2007, Excel2010

「エクセル マクロ 空白行削除」
「Exce VBA 空白の行 削除方法」
といった検索が行われているのを見かけることがあります。

Excelで空白行を削除するVBA(Visual Basic for Applications)マクロを探している方の検索です。

[スポンサードリンク]

空白の行を削除するサンプルマクロ

空白行を削除するマクロといっても、細かくヒヤリングしてみると、いろいろな要望が出てくることが多いのですが、とりあえず、アクティブなワークシートで行全体が空白のときにその行を削除するマクロをご紹介します。

Sub 空白行を削除する()
 
 Dim row_end As Long
 Dim msg As String
 Dim i As Long

 msg = "空白の行をすべて削除しますか?"
 If MsgBox(msg, vbYesNo) = vbNo Then Exit Sub

 row_end = Cells.SpecialCells(xlCellTypeLastCell).Row

 For i = row_end To 1 Step -1
  If WorksheetFunction.CountA(Rows(i)) = 0 Then
   Rows(i).Delete
  End If
 Next i

End Sub

サンプルマクロの解説

まず、
 row_end = Cells.SpecialCells(xlCellTypeLastCell).Row
で最終セルの行番号を取得します。

ループ処理は、
 For i = row_end To 1 Step -1
先に取得した最終行から1行目に向かって処理していきます。

実際に行削除を行う処理がループの中の
  If WorksheetFunction.CountA(Rows(i)) = 0 Then
   Rows(i).Delete
です。

IF文の
 WorksheetFunction.CountA(Rows(i))
はExcel VBAに慣れていない方の場合、見慣れない処理かもしれません。

これはVBAからワークシート関数を利用するときの記述方法です。

ワークシート関数のCOUNTA関数を使うことで、簡単に空白かどうかを調べることができます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » 空白行を削除するExcelマクロ

「WorksheetFunction」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.