• ベストアンサー

複数条件でのデータ抽出について

こんにちは。エクセルのVBAを勉強中ですが、 どうしてもわからないので助言をお願いします。 品名 規格 詳細 適合 1   A   B   ○ 2   A   B  3   A   C   ○ このような文字列があり、 複数条件を指定して、たとえば「Aと○」を両方含む行を抽出し 別のシートへコピーしたいと思っています。 AdvancedFilterを使おうと思っていますが、 どうも使い方がよくわかりません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>AdvancedFilterを使おうと思っていますが VBAではこれ以外にも方法はあるが、これと決めたら マクロの記録をとればわかるではないですか。 初心者ならマクロの記録をとって、 記録がとれない場合 質問者の場合では、どこをどう直すべきか ぐらい考えて質問すべきだ。コードそのものでなくても、言葉ででも よい、何をすべきか(マクロの記録は、1つの場合(の操作)しか表してないが、一般化するには、どこを変えるべきか)を考えるのは、VBAの経験が少なくても出来る。 >どうも使い方がよくわかりません WEB(Googleなど)で照会すれば、記事が沢山でる。 AdvancedFilteで2万件記事が有るそうだ。最初のほうは、皆参考に なりそうだ。 照会をやって読んでみましたか。 今後勉強の必須の心がけでしょう。

s-pooh
質問者

お礼

厳しくも暖かいご指摘ありがとうございます。もう少し試行錯誤しながらがんばってみようと思います。またある程度形になったら質問させてください。

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

取り合えず、マクロの記録を実行してみてください。 オートフィルター 規格が等しい 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とかたっぷりにすれば実用できると思います。

s-pooh
質問者

お礼

マクロの記録は思いつきませんでした。はじめから完璧を求めてはいけませんが、出来るだけスマートなプログラムにしたいと思いますので、もう少しadvanced filterで試行錯誤してみます。また躓きましたら質問させてください。ありがとうございました。

関連するQ&A