2024年のうちにやっておきたいこと、ここで宣言しませんか?

エクセルのマクロ処理で、連続する空白行を削除するにはどうしたらいいでしょうか。

行いたい処理は、データ間に存在する一行のみの空白行は残し、二行以上連続する空白行を一行の空白行に縮めるといったことです。

A 回答 (3件)

データがA列にあるのであればこんなんでどうでしょう?



Sub test01()
With ActiveSheet
x = .Cells(Rows.Count, "A").End(xlUp).Row
For i = x To 2 Step -1
If .Cells(i, "A") = "" And .Cells(i - 1, "A") = "" Then
.Cells(i, "A").EntireRow.Delete Shift:=xlUp
End If
Next i
End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
無事処理できることができました。

お礼日時:2008/05/08 10:56

範囲を下から見て、2行続けて空白だったら削除するのがセオリーでしょうね。


参考までに、こんな方法も。

Sub Sample()
  Dim a
  For Each a In Range("A1:A17").SpecialCells(xlCellTypeBlanks).Areas
    If a.Rows.Count > 1 Then a.Cells(2).EntireRow.Delete
  Next a
End Sub

Range("A1:A17")はデータが入力されている範囲です。
お手持ちの環境に合わせて修正してください。
    • good
    • 0
この回答へのお礼

No.1の方は範囲を下から見ての処理ですね。
提示の方法も参考になりました。ありがとうございます。

お礼日時:2008/05/08 11:01

有効列数は???データ件数は??


データ件数-1から1件目まで逆順ループ、までループ。→ループカウンタA
A行目の有効列数がすべて空白かつ(A-1)行目ならば
(A-1)およびA行目を削除
[カウンタA←(A-2)]・・・あってもなくてもOK

こんなところですね。
    • good
    • 0
この回答へのお礼

有効列数は???データ件数は??
>A列のみで件数はデータシートによりまちまちです。

No.1の方の文で無事処理できました。

お礼日時:2008/05/08 10:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報