• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで空白行を削除する。)

VBAで空白行を削除する方法とは?

このQ&Aのポイント
  • VBAを使ってExcelの特定のシートで空白行を削除する方法について教えてください。
  • マクロを使用して、項目の下に連続する空白行を削除する方法がわかりません。どうすれば解決できますか?
  • 空白セルがまちまちで、全ての項目が空白である行を探す方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

データ行数:>0 Upto:データの先頭行 1:見出しなし 2:見出しあり Sub DelBlankRows() Const Upto = 2 Dim LastCellRow As Long Dim kk As Long Application.ScreenUpdating = False LastCellRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row For kk = LastCellRow To Upto Step -1 If Application.WorksheetFunction.CountA(Rows(kk)) = 0 Then Rows(kk).Delete End If Next kk Application.ScreenUpdating = True End Sub

19560816
質問者

お礼

始めまして、このご回答有難う御座います。一発で動作しました。ただ一点問題がありましたが、自分で解決しました。本当に有難う御座います。今後も宜しくお願い申し上げます。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! C列以降にデータがない行を削除すれば良いわけですよね? 一例です。 Sub 行削除() Dim i As Long, j As Long j = ActiveSheet.UsedRange.Columns.Count + 1 For i = Cells(Rows.Count, 2).End(xlUp).Row To 3 Step -1 If WorksheetFunction.CountA(Range(Cells(i, 3), Cells(i, j))) = 0 Then Rows(i).Delete End If Next i End Sub 「空白セル」がくせ者で、上記コードは生データのみ対応できます。 数式が入っていて見た目が空白の場合はCOUNTされます。 もしそういうセルがある場合は一度↓のマクロを実行した後に上記マクロを実行してみてください。 Sub 数式クリア() Dim c As Range For Each c In ActiveSheet.UsedRange If c.HasFormula And c = "" Then c.ClearContents End If Next c End Sub ※ 一旦マクロを実行すると元に戻せませんので、別Sheetでマクロを試してみてください。 参考になりますかね?m(_ _)m