オートフィルタで抽出したデータの特定の列のセルを空白にするには?

Question 99.1   Previous Next
したいことは、オートフィルタの結果(30以上)を空白にするです。

左図でご説明します。

B列に数量があります。ここが30以上になっていたら、そのセルだけを空白にしたいです。
下記マクロまでは出来たのでが、この後が分からなくて...

他にも試したのですが、「=30」だと何とかなりそうなのですが「以上」だとうまくいかなく、オートフィルタを使うのかとここまできたのですが....
それとも全然違うのでしょうか?
Sub Macro10()
'オートフィルターにする
    Rows("3:3").Select
    Range("A3").Activate
    Selection.AutoFilter
' 30以上を検索する
    Selection.AutoFilter Field:=28, Criteria1:=">=30", Operator:=xlAnd
End Sub
Answer   Copyright (C) 2009.12.9 永井善王
「30以上だとうまくいかない」と言われる原因は、上記マクロの3行目にある Rows("3:3").Select のせいでしょうから、削除してから実行してみてください。
そして、「この後が分からなくて...」ということなので、とりあえず下記のマクロを作っておきました。
下記マクロには行番号が付いていますが、そのままの状態で実行できます。
行番号21から下の行が、あなたのマクロの続きになります。 各行にあるコメントと下の図を照らし合わせながら、オートフィルタした後の処理の概要を押さえておきましょう。
Sub オートフィルタで抽出したデータの特定の列のセルを空白にする()
11  Range("A3").Select
12  Selection.AutoFilter
13  Selection.AutoFilter Field:=2, Criteria1:=">=30", Operator:=xlAnd 'B列

21  Selection.CurrentRegion.Select              'アクティブセル領域を選択する
22  Selection.Resize(Selection.Rows.Count - 1).Select '選択領域を1行減らす
23  Selection.Offset(1, 0).Select               '選択領域を1行下へ移動する
    
31  Selection.Resize(, 1).Select                '選択領域を1列だけにする
32  Selection.Offset(0, 1).Select               '選択領域を1列右へ移動する
    
41  Selection.ClearContents                     '選択領域の数式と値をクリアする
42  Selection.AutoFilter                        'オートフィルタを解除する
End Sub
 13行目・抽出後  → 21行目・領域選択  → 22行目・1行減らす → 23行目・1行下へ →


 31行目・1列だけに → 32行目・1列右へ  → 41行目・クリア

(注) 22行目を実行して1行減らしても、何の変化も見られない場合があります。上図の場合は元々のデータの10行目が関係している。

あなたは、「オートフィルタを使うのかと」考えて「ここまできた」ということですが、それで正解です。
Excel VBA マクロでも、伝統的な繰り返し処理の技法 (For...Next文なと) でデータを1件1件チェックし、数量が30以上であったなら、そのセルを空白にすることも可能です。
しかし、ちょっと考えれば分かることですが、たくさんのデータを1件1件処理するということは、誠に生産性が低いといえます。 コンピュータが未発達で、その方法でしかできなかった時代が長かったためか、いまだに昔ながらの技法で指導する先輩がいるようですが残念なことです。
幸いあなたは、そうではないようですから、 これからも 『Excelの優れたデータ処理能力を活かしたマクロ』 を組むように、お進みください。 Excelは、ほとんどの場合、1件1件処理しなくでもバサッ・バサッと一気に処理できますから。

参考ページ
 ・
選択範囲をリサイズする(狭める)
 ・
選択範囲をオフセットする(ずらす)
後日情報
このマクロは下記の本にも掲載されています。
 ・
Excel VBA 実用マクロ 800連発 [中・上級編] の341番

Excel VBA Macro