- ベストアンサー
複数条件でのデータ抽出について
こんにちは。エクセルのVBAを勉強中ですが、 どうしてもわからないので助言をお願いします。 品名 規格 詳細 適合 1 A B ○ 2 A B 3 A C ○ このような文字列があり、 複数条件を指定して、たとえば「Aと○」を両方含む行を抽出し 別のシートへコピーしたいと思っています。 AdvancedFilterを使おうと思っていますが、 どうも使い方がよくわかりません。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>AdvancedFilterを使おうと思っていますが VBAではこれ以外にも方法はあるが、これと決めたら マクロの記録をとればわかるではないですか。 初心者ならマクロの記録をとって、 記録がとれない場合 質問者の場合では、どこをどう直すべきか ぐらい考えて質問すべきだ。コードそのものでなくても、言葉ででも よい、何をすべきか(マクロの記録は、1つの場合(の操作)しか表してないが、一般化するには、どこを変えるべきか)を考えるのは、VBAの経験が少なくても出来る。 >どうも使い方がよくわかりません WEB(Googleなど)で照会すれば、記事が沢山でる。 AdvancedFilteで2万件記事が有るそうだ。最初のほうは、皆参考に なりそうだ。 照会をやって読んでみましたか。 今後勉強の必須の心がけでしょう。
その他の回答 (1)
- hallo-2007
- ベストアンサー率41% (888/2115)
取り合えず、マクロの記録を実行してみてください。 オートフィルター 規格が等しい A 適合が等しい ○ 1行目から数行を選択、コピィ 別シートに貼り付け 元シートを選択、Esc、オートフィルター解除 上記で出来たコードです Sub Macro1() Cells.Select Selection.AutoFilter Selection.AutoFilter Field:=2, Criteria1:="A" Selection.AutoFilter Field:=4, Criteria1:="○" Rows("1:6").Select Selection.Copy Sheets("Sheet2").Select ActiveSheet.Paste Sheets("Sheet1").Select Application.CutCopyMode = False Selection.AutoFilter End Sub このコードの Rows("1:6").Select を Rows("1:6000").Selectとかたっぷりにすれば実用できると思います。
お礼
マクロの記録は思いつきませんでした。はじめから完璧を求めてはいけませんが、出来るだけスマートなプログラムにしたいと思いますので、もう少しadvanced filterで試行錯誤してみます。また躓きましたら質問させてください。ありがとうございました。
お礼
厳しくも暖かいご指摘ありがとうございます。もう少し試行錯誤しながらがんばってみようと思います。またある程度形になったら質問させてください。