[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数シート同時に空白行だけを一気に削除』(ヒデ)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.