• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:空白行の削除マクロについてご教示ください)

空白行の削除マクロについてご教示ください

このQ&Aのポイント
  • 空白行の削除に、下記マクロを活用させていただいていますが、見た目空白なのに削除されない行が時々残ってしまいます。
  • 削除されなかったセルを「Deleteキー」で空白にするとマクロが実行され、きちんと削除されます。
  • こういった、スペースか何かが入っていても、見た目空白なら削除するようにはできないでしょうか。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>スペースか何かが入っていても sub macro1()  dim s as long  dim e as long  dim r as long  s = 5  e = range("A65536").end(xlup).row  for r = e to s step -1   if application.trim(cells(r, "A")) = "" then    cells(r, "A").entirerow.delete shift:=xlshiftup   end if  next r end sub

hijtxa
質問者

お礼

早速のご教示ありがとうございました。 うまく削除できました。 早速、活用させていただきます。 また、よろしくお願いいたします。

その他の回答 (1)

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

こんにちは! おそらく・・・ >For Each c In Range("a" & 開始行 & ":a" & 最終行) の部分でお望みの結果にならないと思います。 上の行から下に向かって操作を行いますので、行が削除されるたびにFor~Next が1行ずつずれますので 本来削除したい行を通り越して次の行の操作に入ってしまうのが原因と思われます。 ↓のような感じにしてみてはどうでしょうか? Sub 削除2() Dim i As Long Dim 開始行 As Long Dim 最終行 As Long 開始行 = 5 最終行 = Range("a5000").End(xlUp).Row For i = 最終行 To 開始行 Step -1 If Cells(i, "A").Value = "" Then Rows(i).Delete End If Next End Sub ※ 行の挿入・削除は最終行から上に向かっての操作にした方が間違いないと思います。m(_ _)m