• ベストアンサー

EXCLEのマクロ データの絞り込み

EXCELのマクロについてご教授願います。 数百件のデータで、C列は同じデータは複数あるが、A列に関して別のデータが入っている。B列もほぼ同じデータ ここで条件として C列が同じデータで、A列に特定のワードが入っているデータだけを残し、他のデータを削除するというマクロを組むことは可能でしょうか。 例えば下記のようなデータで、「abcd」だけ残し 他のデータは削除する    A         B        C 1  abcd      AAAAAA      BBBBBB 2  EFGA      AAAAAA      BBBBBB 3  hijk      AAAAAA      BBBBBB 4  lnms      AAAAAA      BBBBBB 5  abGG      PPPPPP      WWWWWW 6  EFTT      PPPPPP      WWWWWW 7  POII      PPPPPP      WWWWWW 2行目から4行目と6行目委から7行目を削除し以下のような データにする。常にA列のデータに ab というキーワードが 入っていて、Cが同じデータは、abが入っているデータのみ 残し他を削除する    A         B        C 1  abcd      AAAAAA      BBBBBB 5  abGG      PPPPPP      WWWWWW のみにする

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

  • ベストアンサー
noname#130090
noname#130090
回答No.1

こういうことでしょうか? おっかないので削除ではなくE~G列に書き出してますが。 Public Sub A_search()   Dim Slet As String, LetBox As Variant   Dim i As Long, j As Long   Slet = InputBox("A列で検索したい文字は?")   For i = 0 To Cells(65536, 1).End(xlUp).Row - 1     If Cells(1, 1).Offset(i) Like "*" & Slet & "*" Then       LetBox = Range("A1:C1").Offset(i)       Range("E1:G1").Offset(j) = LetBox       j = j + 1     End If   Next i End Sub

tomo0117
質問者

お礼

御礼が遅くなりました。 大変ありがとうございます。 ばっちり私の行いたいことができました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 その#2の書いた内容には無視なのか反応を示さないようですから、コードを置いて置きます。単に、検索するなら、AutoFilter を使ってコピーすればよいのです。 でも、最初の質問の内容とは、何か違うような気がします。 それで良いならよいのですが、こんな初歩的な内容なら、記録マクロでも取れます。    A         B        C 1  製品名1    製品名2      製品名3 ←タイトル行 2  abcd      AAAAAA      BBBBBB タイトル行を必ず入れた状態で、このようにすればよいです。 '------------------------------------------- Sub Test1()   Const sFIND As String = "*ab*" '検索語   ActiveSheet.AutoFilterMode = False   With Range("A1").CurrentRegion     .Range("A1").AutoFilter Field:=1, Criteria1:=sFIND     ActiveSheet.Range(.Cells(2, 1), _     .Cells(.Cells.Count)).Copy Range("E1")   End With   ActiveSheet.AutoFilterMode = False End Sub '------------------------------------------- なお、Like演算子を使う場合は、比較モードは、Compare Text にしたほうがよいです。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 直感的に、ご質問の内容では、何かぼんやりとしてですが、条件として不足しているように感じられます。 少なくとも、1列目で、オプション検索で、「ab で始まる」を探せばよいはずですが、それでは条件として不足しているようです。 (1)>C列が同じデータ  (2)>A列に特定のワードが入っているデータだけを残す の(1) と(2)だけでは、どうしてもしっくりきません。 >数百件のデータ ということですが、 C列のBBBBBB群 C列のWWWWWW群 から、A列にキーワードのある語を、一群から、それぞれ選び出す(複数あるか、ひとつだけか)ということでしょうか? このC列の群は、二つだけでなく、数十群もあるということでしょうか?