• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2007で複数を単体として検索)

Excel2007で複数を単体として検索

このQ&Aのポイント
  • Excel2007で複数のデータを単体として検索する方法について教えてください。
  • range(A10:C12)に値A~H + ワイルドカードを自分で1つを選び入れて、1つの形にして検索できるタイプにしたいです。
  • 列OPQの最後尾のデータからO列+P列+Q列を検索し、黄色く着色されたセルの値を列HIJの3行目以下に表示したいです。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

参考に Sub Test5()  Dim myRang As Range, c As Range, flg As Boolean  Dim i As Long, j As Long, LastH As Long, LastO As Long  Range("H3:J" & Cells(Rows.Count, "H").End(xlUp).Row).ClearContents  LastO = Cells(Rows.Count, "O").End(xlUp).Row  Range("O3:Q" & LastO).Interior.Color = xlNone  For i = 3 To Cells(Rows.Count, "O").End(xlUp).Row - 3   Set myRang = Cells(i, "O").Resize(3, 3)   For Each c In Range("A10:C12")    j = j + 1    If c.Value <> "*" And c.Value <> myRang.Item(j) Then flg = True   Next   If flg = False Then    flg = False    Cells(i + 3, "O").Resize(, 3).Interior.Color = vbYellow    LastH = Cells(Rows.Count, "H").End(xlUp).Row + 1    If LastH < 3 Then LastH = 3     Cells(LastH, "H").Resize(, 3).Value = Cells(i + 3, "O").Resize(, 3).Value    End If    flg = False    j = 0   Next End Sub

961awaawa
質問者

お礼

ピシャッとできましたー!!! ありがとうございますwatabe007さん。 今回は意志疎通が上手くいったきがします。私の複雑な考えはまだまだ有りますのでまた御協力お願いいたします。

その他の回答 (3)

  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.3

私の考えているものと、データの入り方が違っているのだと思います。 データがどのように入っていて、検索ワードがどのようなものなのか書いてないので、かなり想像で作りました。 できれば、元のワークブックを上げていただければと思います。 YahooBoxは禁止されているみたいで、前に削除されました。

参考URL:
https://www.filesend.to/
961awaawa
質問者

お礼

いつもありがとうございますSI299792さん。私はガラケでもう色々と方法が追いやられてるんでちょっと難しいみたいです。 OPQの3列の3行目から(今のところ1000行目まで)下に向かってA~Hのいずれかが各セルに1つずつぎっしり入ってます。 検索ワードはrange(A10:C12)に格子を入れて |A|B|*| |*|C|*| |*|A|A| や |*|*|*| |A|A|B| |*|A|B| のような形で検索してこの形の1つ下の3つ並びのデータを抜き出して指定の所に並べるんです。私の知っている限りなんですがワイルドカードは全てに対応なんでしょうね。 SI299792さんのおっしゃい方だと理解してくれてるようなので意志疎通が上手くできてて嬉しくおもいます。 質問や説明って難しいものですね。

  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.2

[A10:C12] の値をキーワードにしてO列+P列+Q列を検索、 結果の1つ下を黄色にして、更に、H~Jにコピーする という風に解釈しました。 ' Option Explicit ' Sub Macro1() '   Dim Find As Range   Dim FEnd As Range   Dim Row As Long '   Range("H3:J" & Rows.Count).ClearContents   [O:R].Interior.Pattern = xlNone   Row = 2 '   For Each Find In [A10:C12] '     If Find = "" Then       Set Find = Nothing     Else       Set Find = [O:Q].Find(Find, _         LookIn:=xlValues, Lookat:=xlWhole, searchorder:=xlByRows)     End If '     While Not Find Is Nothing       Set Find = Cells(Find.Row + 1, "O") '       If Find.Offset(1).Interior.Color <> vbYellow Then '         Set FEnd = Cells(Find.Row + 1, "Q")         Range(Find, FEnd).Interior.Color = vbYellow         Row = Row + 1         Range("H" & Row & ":J" & Row) = Range(Find, FEnd).Value       End If       Set FEnd = Range("Q" & Rows.Count)       Set Find = Range(Find, FEnd).FindNext(FEnd)     Wend   Next Find End Sub 上記解釈が間違っていたら書いて下さい。

961awaawa
質問者

お礼

お久しぶりですSI299792さん。ご協力ありがとうございます。SI299792さんが理解してくれた通りなんでやってみたんですが、列OPQにあるデータの2ヵ所だけが黄色付けされて後はポインタが砂時計になり何もならないです。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.1

》 前にも似たような形で質問しました その質問のURLは?

961awaawa
質問者

お礼

すみません。質問履歴がなくなってしまってます。

関連するQ&A