[[20120808113925]] 『複数シート同時に空白行だけを一気に削除』(ヒデ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数シート同時に空白行だけを一気に削除』(ヒデ)Excel2003,WindowsXP

A列が空白の行を削除する為、以下の方法を使いました。
http://pc.nikkeibp.co.jp/article/NPC/20060215/229461/
しかしこの方法だと、すべてのシートを選択しても
選択したシートの行しか削除されませんでした。
複数シート同時に、
A列が空白の行を削除する良い方法がありましたら、教えて下さい。
(削除するシートのファイルの入力形式は同じですが、
行の長さはシートによって異なります。)


 例示の内容をマクロの記録で実行すると
 Sub Macro1()
    Columns("B:B").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.EntireRow.Delete
 End Sub
 というコードになりました。
 これを各シートで実行するように変更し(これだけでも出来ますが)、無駄な Select
 を削除すると

 Sub Sample()
    For Each ws In Worksheets
        ws.Activate
        Columns("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    Next
 End Sub

 となります。
 このままだと空白シートでエラーになるのと、実行終了時は最終シートが選択されている
 ので、エラー処理と先頭シートへ戻る処理を追加すると、

 Sub Sample2()
    For Each ws In Worksheets
        ws.Activate
        If Application.WorksheetFunction.CountBlank(Columns("B:B")) <> Rows.Count Then
            Columns("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        End If
    Next
    Worksheets(1).Activate
 End Sub

 となります。
 ご参考までに。
 (Mook)


実際に試してみました。
すべてのシートを選択した上で、
空白セルをクリックした状態でマクロを実行したら、上手くいきました。
ご回答ありがとうございました。
(ヒデ)

 一応うまくいったようで何よりですが、補足しておくとマクロはシートやセルの選択状態に
 依存しないので、そのまま実行しても同じ実行結果になります。
 (Mook)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.