• ベストアンサー

〔EXCEL〕でセル範囲の検索を行いたい

x0000xの回答

  • ベストアンサー
  • x0000x
  • ベストアンサー率52% (67/127)
回答No.1

こんにちは。 こんな感じでどうですか? 対象シートのマクロとして以下を記述します。 「'セル背景色を黄色」の行をコメント解除する事で背景色も設定しています。 Sub setColor() Dim AmaxRow, BmaxRow As Long With ActiveSheet AmaxRow = .Cells(.Rows.Count, "A").End(xlUp).row BmaxRow = .Cells(.Rows.Count, "B").End(xlUp).row Dim str As String Dim ar, br As Long For br = 9 To BmaxRow Dim c As Range Set c = .Range("A9:A" & AmaxRow).Find(.Cells(br, 2), LookIn:=xlValues) If Not c Is Nothing Then Dim fAddr As String fAddr = c.Address Do 'c.Interior.ColorIndex = 6 'セル背景色を黄色 Call setCharColor(c, .Cells(br, 2)) '部分一致文字の色付け Set c = .Range("A9:A" & AmaxRow).FindNext(c) Loop While Not c Is Nothing And c.Address <> fAddr End If Next End With End Sub Sub setCharColor(ByRef rg As Range, ByVal str As String) Dim st, length As Integer st = InStr(rg.Value, str) length = Len(str) If st > 0 Then rg.Characters(Start:=st, length:=length).Font.ColorIndex = 3 '文字列を赤色に! End If End Sub

atk18
質問者

お礼

できました☆ありがとうございます☆ マクロはべんりですね。。

関連するQ&A

  • EXCEL2003 条件付き書式で

    EXCEL2003 条件付き書式で エクセル2003を使用しています A列とB列に文字列あり、A列の文字がB列に含まれる(完全一致ではない)場合にセルの色を変えたいのですが、どうすればいいでしょうか?ちなみにA列は2123列でB列は12105列です。よろしくお願いします

  • エクセルで指定した範囲で指定した文字を含むセルの個数を集計

    エクセルで、下記のようなデータベースがある場合、 品名ごとに(シャツ)(ズボン)の指定した色(青)の個数を 求める関数が知りたいのですが、どなたか教えてください。 よろしくお願いします。 品名   色 シャツ  青 シャツ  青 シャツ  赤 ズボン  黒 ズボン  白  ・   ・  ・   ・  ・   ・

  • 検索するセルの範囲内から文字を表示する方法

    Excel2016で、検索する文字の一部が一致する場合、検索するセルの範囲内から文字を表示する関数を教えてください。 例えば次のような文字列があるとします。 A1:EURUSD A2:GBPUSD A3:AUDUSD A4:USDCHF A5:USDCAD A6:NZDUSD B1:EURGBP B2:EURAUD B3:EURCHF B4:EURCAD そこで、A1からA6の範囲からB行の右側の3文字に当てはまる文字列をC行に表示させたいのですがどうすればよいでしょうか? 例えば、B1の「EURGBP」の右側の3文字は「GBP」のため、A1からA6の範囲でA2が当てはまるため、C1は「GBPUSD」となります。 B4は「EURCAD」で右側の3文字は「CAD」のため、A1からA6の範囲でA5が当てはまるため、C4は「USDCAD」となります。 回答よろしくお願いします。

  • EXCEL2003の検索方法

    お世話になります。 業務でExcel2003でデータベースを作成しており、データベース内を検索しながら、ないものについては新規入力をしています。 検索は普通にExcelの検索機能を使っていますが、先頭一致の検索ではないため使い辛く、また、いちいち検索ボタンを押さなくても一文字入力するごとに、カーソルがジャンプしてくれるといいなと思います。 例えば、「ABC」を検索するときに、「A」を入力すると先頭が「A」で始まるデータの最初のセルにジャンプする感じで、 1行目 AAAA 2行目 AABB 3行目 ABBB 4行目 ABCA 上記の場合なら、「A」と入力すると1行目にジャンプし、「AB」になると3行目へ。「ABC」になると4行目になって欲しいのです。 また、Excelの検索機能と同じように、検索画面は出ている状態で、データベースもスクロールできたりセル内を修正できるといいのですが… ネットで検索してはみたのですが、なかなか思うようなのが検索できず、 質問させて頂きました。よいフリーソフトや、参考サイトがありましたらご教授下さい。よろしくお願いします。

  • エクセルの条件付き書式で隣のセルの下4ケタと比較

    エクセルの条件付き書式で A1セルの10桁の文字列のうち下4桁B2のセルの10桁の文字列のうち 下4桁と一致すれば、色を変えず、一致しない場合黄色に変える ような使い方はできますか?

  • データ検索

    エクセル2003VBAの質問です。 AシートにAデータベースがあります。 そのデータベースには一つのセルに、日にちと時間が入力されています。(例 2008/10/07/ 16:29) BシートにもBデータベースがあります。 Aシートの先程のセル(日にちと時間)を、Bシートで検索したいです。 しかし、このBシートには、Aシートのセルが一致しないものもあります。 一致すれば、Aシートの先程のセルとAシートに入力されている、他の項目をCシートにコピーしたいです。 一致しなければ、そのデータベースは無視して、Aシートに入力されている次のデータ(次の行)を検索したいです。 どうすれば良いでしょうか? よろしくお願いします。

  • Excel2007で、検索をしたいのですが…。

    Excel2007で、検索をしたいのですが…。 A列にNo. B列に品名 であればVLOOKUPで検索出来るのですが、教えて頂きたいのは A列にNo. B列に品名 C列にもNo. D列にNo.入力 E列に表示 例) 01     机      91    02     椅子     92    03     布      93 01 と入力した場合も 91 と入力した場合もどちらも『机』と表示されて欲しいのです。 この場合、VLOOKUPでは対応出来ない気がするのですが、何か別の関数ありますか? 当方、関数は苦手で、ほぼ初心者のようなものです。 宜しくお願い致します。

  • となりのセルの文字を消したい

    困っているので助けてください。 A列   |  B列      | ↓こんな風にしたい PCA651 | PCA651テープツキ   | テープツキ QTC421 | エンピツQTC421シサク | エンピツシサク 上記のようなエクセルでのデータがある時、 B列の中から、A列にある文字を消したいです。 データ量が1万件もあるため、手で消していくのが大変です。 量が多いため、「置換」ができません。 セルで指定ができない?んですかね。。。 A列の文字が消えれば、スペースができても構いません。 関数で使えるのがないか、探したのですが、うまくいきません。 B列文字列 - *A列の文字*(または含む)が理想です。 何か良い案ないでしょうか? この際マクロやアクセスに挑戦してみようかとも思いますが、 それが必要であれば、具体的なヒントください。 よろしくお願いします。

  • 4つのセルを1つの塊り(マス)と捉えて塗潰す方法3

    どなたかご存知でしたら回答をよろしくお願いします。 【質問】 下図の様に、a~n、1~10の合計140個のセルに数字が1~99迄の重複有りで 入っています。a1,a2,b1,b2の4つのセルで1つのマスとみなすと、 140個のセルは縦:5マス、横:7マスの合計35マスとなります。 この条件で、検索値欄に1つ数字を入れたら、一致した数字が入っているマス (4つのセルの集合)を塗潰すにはどうすればよいですか? 具体的には、    (1)1つのマスに一致した数字が1個の場合は黄色く塗り潰す。    (2)1つのマスに一致した数字が2個の場合は赤く塗り潰す。    (3)1つのマスに一致した数字が3個の場合は緑色で塗り潰す。    (4)1つのマスに一致した数字が4個の場合は青色で塗潰す。 〇例題  a b c d e f g h i j k l m n 1 02 05 07 07 14 13 15 16 17 28 22 32 33 37 2 03 03 07 14 13 28 99 31 23 32 31 36 32 37 3 05 01 07 06 15 07 20 08 26 12 27 19 32 37 4 04 03 08 10 10 14 12 17 24 18 30 22 37 24 5 08 01 13 02 16 04 25 09 28 15 34 24 36 34 6 01 06 05 12 18 14 22 19 23 30 26 35 28 36 7 02 03 04 11 06 16 20 21 25 26 29 27 31 29 8 07 07 08 10 09 14 17 15 18 21 19 26 20 34 9 07 07 10 04 11 05 18 13 27 20 28 33 30 34 10 07 07 16 14 19 24 24 25 27 26 33 32 35 35 検索値:07 【結果】 検索値に07を入れたら、下記の5マス(20セル)が塗潰される。 c1,d1,c2,d2 ・・・ 3個一致なので、緑色で塗潰される。 c3,d3,c4,d4 ・・・ 1個一致なので、黄色で塗潰される。 e3,f3,e4,f4 ・・・ 1個一致なので、黄色で塗潰される。 a7,b7,a8,b8  ・・・2個一致なので、赤色で塗潰される。 a9,b9,a10,b10 ・・・4個一致なので、青色で塗潰される。 〇注意事項  ・使用するエクセルは2010です。  ・1マス=4セルです。※a1,a2,b1,b2で1マスです。  ・セルに入っている数字はランダムで、同じ数字の重複は35マス(140セル)全体で   4個迄です(1つのマスに4個入る事も有るし、4つのマスに1個ずつ入る事も   あります。)  ・検索値欄に入力できる数字は1~99迄の1つです。  ・セルの数字は表示上、2桁で表しています。(例:1ではなく01) 以上、よろしくお願いします。

  • Excelで、条件と一致する最後のセルを検索したい

    Excelで、条件と一致する最後のセルを検索したいのですが、どの関数をどのように使えばいいかわかりません。 どなたかお力をお貸し下さい。 問) 日付  社名  品名  個数 1/1   A    あ    1 1/1   C    い    2 1/2   B    う     3 1/2   A    え    4 1/3   C    お    5 1/3   A    あ    3 答) A社の最終購入日は  1/3 あ 3 B社の最終購入日は  1/2 う  3 C社の最終購入日は  1/3 お 5 となるようお願いします。