プロが教えるわが家の防犯対策術!

質問させていただきたいのですが、

フィルタでソートして、その結果について、行ごと全体を削除したい考えています。

データは10,000行程はあります。
フィルタでタイトル行は12行目、
ソートした結果は、14行目やその他ソート条件によって様々な行から表示されます。
タイトルは残して、ソートした結果の行を全て削除したい場合、どのようにすればいいのか教えていただきたく存じます。

初心者の質問で申し訳ございませんが、宜しくお願い致します。

A 回答 (6件)

> フィルタでソートして削除しょうとしていたのがA列が空欄行のものをソートして空欄行を削除するでした。



最初からそう書いてください。

Sub test01()
On Error Resume Next
Range("A13:A" & Rows.Count).SpecialCells(xlCellTypeVisible).EntireRow.Delete
On Error GoTo 0
End Sub
    • good
    • 0
この回答へのお礼

出来ました。
文章が足りなくてすいませんでした。
大変助かりました。ありがとうございました。

お礼日時:2009/02/22 22:48

蛇足ですが、お時間のあるときに御覧になると


ご自分で解決できるかもしれません。
エクセル技道場>マクロ http://www2.odn.ne.jp/excel/waza/macro.html の
特定列が未入力の場合その行を削除 http://www2.odn.ne.jp/excel/waza/macro.html#SEC5
空白行を行削除 http://www2.odn.ne.jp/excel/waza/macro.html#SEC4

すぐに役立つエクセルVBAマクロ集 - Excel VBA Macro Collection http://www.asahi-net.or.jp/~zn3y-ngi/
    • good
    • 0
この回答へのお礼

お礼が遅くなり大変申しわけございません。
参考になりました。ありがとうございました。

お礼日時:2009/03/21 18:13

> A12より下にデータはあるのですが、最下行まではびっしりない状態です。



x = Range("A" & Rows.Count).End(xlUp).Row

これはA列最下行(エクセル2003までなら65536行)から上に向かっていって最下行が空白であれば最初にデータがあるセルの行、最下行にもデータがあれば連続する一番上のデータ入力行を取得する式です。最下行が空白でxが12なら、A13から下にデータはありえません。
ひょっとして式を変えましたか?
    • good
    • 0
この回答へのお礼

出来ました!!!
大変申し訳ないのですが、一点、書き忘れていました。
まず、最初にフィルタでソートして削除しょうとしていたのがA列が空欄行のものをソートして空欄行を削除するでした。

その為に空欄行が認識されませんでした。
空欄行以外のものでやったら出来ました。
すいません。ありがとうございます。

あと一点すいませんがフィルタでソートして空白行の削除はどのようにやればいいのでしょうか?

教えて下さいばかりですいませんが宜しくお願い致します。

お礼日時:2009/02/22 21:52

> 上記のコードをやると、Xが12になり



ということはA列にはA12セルより下には何もデータがないということになります。(あるいは最下行からA12までびっしりデータが入ってる?まさか)
わたしは「仮にデータのある列がA列の場合、」という前提で書いたのですがいかがでしょうか?
    • good
    • 0
この回答へのお礼

A12より下にデータはあるのですが、最下行まではびっしりない状態です。
私のやり方が悪いのかもしれません。
もう少し、試してみます。
ありがとうございます。

お礼日時:2009/02/22 16:48

下記も参考になりそうです。



行の削除 http://www2.odn.ne.jp/excel/waza/macro.html#SEC6
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にさせていただきます。

お礼日時:2009/02/22 16:46

タイトル行は12行目ということは13行目からがデータなんですね?


仮にデータのある列がA列の場合、ソート後に以下を走らせれば出来ると思います。

Sub test01()
x = Range("A" & Rows.Count).End(xlUp).Row
On Error Resume Next
Range("A13:A" & x).SpecialCells(xlCellTypeVisible).EntireRow.Delete
On Error GoTo 0
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やってみましたが出来ませんでした。
私のやり方、もしくは質問の仕方が悪いのかもしれません。

現在はソートまでしてある状態です。

13行からデータですが、ソートした結果14行目がデータの先頭行としてソートされています。

上記のコードをやると、Xが12になり、12行目のタイトル行のみが削除されてしまうようです。

私のやり方が悪いのでしょうか?
ご教示いただけますと大変嬉しいです。
宜しくお願い致します。

お礼日時:2009/02/22 12:55

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