dポイントプレゼントキャンペーン実施中!

オートフィルターを設定してあるshee2のF列の複数を抽出し、それ以外を削除をしたいのです。

現在は1つの値で以下のコードで抽出しておりますが元のデータが多すぎてファイルが重いので
抽出した以外の行は削除希望です。

With Worksheets("Sheet2")
.Range("F1").AutoFilter Field:=6, Criteria1:="121543029"  'F列(整理区分)を抽出
End With
                        ↑
                     ※複数指定したい

以上、御教示頂ければ幸いです。

A 回答 (3件)

マクロでやりたい、かつマクロが組める方ですね。


以下の操作をするコードを追加すればよいと思います。手順2は質問文のコードです。

作業列を2列使用します。ここではY、Z列として説明しますが、データが存在する最右列よりも右側の未使用列としてください。
念のためですが、操作はデータ行のみが対象です。見出し行や余白行への操作は不要です。

■手順 これをコード化
1.F列にフィルタをかける前に、すべてのデータ行の未使用列(ここではY列とします)に連番を打ちます。(縦方向に1,2,3,・・・です)
2.F列のフィルタをかけます。※質問文のコードです。
3.F列のフィルタで抽出されたすべて行について、未使用列(ここではZ列とします)に『残す』と記入する(コピペで抽出行のみに貼り付けできます。他のやり方でも可)
4.F列のフィルタを解除する
5.すべてのデータ行を対象として、Z列で昇順に並べ替えを行う。
6.Z列が『残す』⇒『空白』の順に並んだので、Z列が空白になっている行を範囲指定して削除する。
7.すべてのデータ行を対象として、Y列で昇順に並べ替えを行う。(元の並び順に戻す作業です)
8.Y、Z列を消去(削除)する

■補足
※1 記入する文字列は『残す』である必要はありません。あくまでも目印です。
※2 Y列の連番は、データに日付時刻やIDなど並び順の基準ものがあれば不要で、手順7はそれを基準に並べ替えればよいです。
    • good
    • 1
この回答へのお礼

望み通りの処理ができました。
本当にありがとうございました。

お礼日時:2021/06/21 09:30

>元データからいくつかの不要列を指定削除したり・・・



それなら、増々、フィルターオプション(AdvancedFilter メソッド)をお勧めします。
AdvancedFilterって、条件抽出だけではなく、列の入れ替えもできます。もちろん、不要列の削除も可能です。
まずは、マニュアル操作で「詳細設定」をやってみて、それをマクロ記録してみて下さい。記録されたマクロを見れば、使い方は分かると思います。
    • good
    • 1
この回答へのお礼

分かり易かったです。
参考にさせて頂きます。ありがとうございました。

お礼日時:2021/06/21 09:31

フィルタオプションじゃダメなんですかね?

    • good
    • 2
この回答へのお礼

元データからいくつかの不要列を指定削除したりの中での一連でこの機能を加えたいと思ってます。

お礼日時:2021/06/17 16:45

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

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