• ベストアンサー

エクセルで連続検索しセルに色をつける。

エクセルでShieet1J列10からBB10000までのセルに4桁の数値(重複あり)がランダムにあります。 この4桁の数値をShieet2のA列1からA列100に入力した数値から検索してセルに色をつけたいのですが 良い方法はありませんでしょうか。 現在はエクセルの置換え機能を使ってますが毎日200くらいの作業があり、困っております。                                 宜しくお願いいたします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

いまいち要件がはっきりしません。 Sheet2!A1の値を、Sheet1!J10:BB10000の中で検索し、ヒットしたら、当該セルに着色する。 次いで、Sheet2!A2以降についても同様に検索し、ヒットしたら着色する という方向でしょうか? Sheet2!A1以降行が変わる毎に、色は変えるのでしょうか。もっとも、100色も使い分けても見分けられないと思いますが。 上記方向と仮定して、Sheet2!A1一個分だけ書いてみました。 処理は一秒たらずで済みますが、25%ズーム表示でも相当スクロールしないといけない範囲から探すのは嫌になりますね。 着色してから、何がなさりたいのでしょうか。 Sub test() Dim targetRange As Range Dim buf As Variant Dim i As Long, j As Long, myColorIndex As Long Dim myKey As Variant Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Set targetRange = Worksheets("Sheet1").Range("J10:BB10000") buf = targetRange myColorIndex = 4 myKey = Worksheets("Sheet2").Range("A1").Value With targetRange For i = 1 To UBound(buf, 1) For j = 1 To UBound(buf, 2) If buf(i, j) = myKey Then .Cells(i, j).Interior.ColorIndex = myColorIndex Next j Next i End With Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub 試験データ作成 Sub makeSampleData() '試験データ作成 With Range("J10:BB10000") .Clear .Formula = "=int(rand()*10000)" .Value = .Value End With End Sub

fukuzawakamon
質問者

お礼

ご回答ありがとうございます。 お礼がたいへん遅くなり申し訳ありませんでした。 まさに、ご回答いただきましたとおりです ほんとうにありがとうございます。 恐縮ですがSheet2!A1をA50までできるようにしたいのですがどのようにしたらよろしいのでしょうか

その他の回答 (4)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

一例です。 条件付き書式設定は如何でしょうか。 (1)Sheet2を選択→Ctrl+F3キー押下→名前欄に任意名(仮にabc)→参照範囲欄に    =Sheet1!$A$1:$A$100を入力→OK (2)Sheet1のJ10:BB10000を選択→条件付き書式(エクセルグレード不明につき、    web検索して下さい)→「数式を」又は「数式を利用して~」を選択→    数式欄に=COUNTIF(abc,J10)を入力→書式ボタン押下→パターンタブ又は、    塗りつぶしタブで色を選択→OK

fukuzawakamon
質問者

お礼

ご回答ありがとうございます。 お礼がたいへん遅くなり申し訳ありませんでした。 条件付き書式設定でこのようなことができることは知りませんでした 今回はANO2のご回答を活用させていただきますがmu2011さんのご回答も私にとっては新しい領域のきっかけになりました。

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

セルに色を着けるという機能は、エクセルでは書式」に属する機能で実現するもの。 エクセル関数は、セルの値は見つけたリ、判別したり、加工したりできるが、「書式」については手が及ばない仕組みにしてあるのだ。 そういうエクセル関数の基本のことを知らないのではないか。 ーー 条件付き書式というのが在る。そこで数式まがいの式を使うがそれで賄えるのか? ーー 置換操作で置換後の値を検索語(数)と同じに指定し、書式でパターン色を指定すると、セルの色だけが変わったように見える。但し1,3,5などと複数指定は出来ないかもしれない。 ただし 1の桁が1の数を問題にするような場合は 検索語 *1 置換後 指定しない 書式 セルのパターン色ーブルー など特殊例ならできるだろう。例 1,21、71・・のセルに色がつく ーー VBAならセルの書式も(条件に該当するか判別して)自由に出来る。VBAを勉強すること。 ーー 連続操作・繰り返し操作も普通はVBAの領分。

fukuzawakamon
質問者

お礼

ご回答ありがとうございます。 お礼がたいへん遅くなり申し訳ありませんでした。 ANO2mitarashiさん回答のマクロを試してみて感動しました。 マクロの勉強を試みます ご回答ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! >A列1からA列100に入力した数値から検索してセルに色をつけたい・・・ とありますが、Sheet2にあれば同じ色で塗りつぶせば良いのですよね? とりあえずそういうコトだとしてのVBAでの一例です。 画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしたマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) ※ とりあえずSheet1のA列にデータがあれば「赤」にしてみました。 Sub 色付け() 'この行から Dim i, j As Long Dim ws As Worksheet Set ws = Worksheets(2) Application.ScreenUpdating = False Cells.Interior.ColorIndex = xlNone For j = 10 To 54 For i = 10 To Cells(Rows.Count, j).End(xlUp).Row If WorksheetFunction.CountIf(ws.Columns(1), Cells(i, j)) Then Cells(i, j).Interior.ColorIndex = 3 '←「赤」にしています。 End If Next i Next j Application.ScreenUpdating = True End Sub 'この行まで ※ 他の色にしたい場合は「カラーインデックス」で検索してみてください。 ※ Sheet2のデータごとに色を変えたいのであれば、B列に色を付けてそれを表示させる方法もあります。 しかし、100色となると見た目になかなか判り難いでしょうし、マクロを実行しても結構な時間を要します。 参考になりますかね?m(_ _)m

fukuzawakamon
質問者

お礼

ごかいとうありがとうございます。 お礼がたいへん遅くなり申し訳ありませんでした。 パソコンの問題だと思いますがマクロの処理終了まで5分くらいかかってしまいました。 パソコンに問題がないか確認してみます。 ご丁寧な回答をありがとうございました。

  • NURU_osan
  • ベストアンサー率50% (297/593)
回答No.1

 マクロプログラムを組むのが一番です。

fukuzawakamon
質問者

お礼

ご回答ありがとうございます。 ご指摘のとおりマクロを勉強します。

関連するQ&A

  • エクセル 色つきセルのみの表示

    こんにちは いつもお世話になっています。 エクセル2003を使っています。 A列に文字データがあります。条件付書式で重複セルに色をつけてあります。 この色をつけたセルだけを表示させる方法を教えてください。 実際に色を付けてあれば検索で処理できるようですが、条件付書式でのやり方をネット上で探せませんでした。よろしくお願いします。

  • エクセルでセルの検索2

    前の質問(QNo.1122144)で説明が不十分だった為再度投稿致します。 エクセル2000で複数検索条件に当てはまるセルの個数を関数で処理したいのですが、何かいい方法はありますか? たとえば、 A列 日付(2004/12/11など) B列 状態(○or×) C列 会社名(A社など) D列 品番(123456789など数値or文字列) となっていて、 A列が「2004/12/11」でB列が「○」でC列が「A社」の条件を満たすD列の重複を削除した状態のセルの個数を知りたいなどです。 オートフィルターで絞り込んでD列の重複を削除したイメージです。この方法だとこの処理をした時のみは個数が解りますが、やりたいのは編集した時にこの処理が反映されるようにしたいのです。 宜しくお願いします。

  • excel、A1セルとB1セルの差でセルに色を付けるには・・・・。

    皆さん始めまして、いつも大変お世話になっております。 excelでの質問です。 まずA1セルとB1セルに小数点2桁の数値を入力します。 A1セルからB1セルの数値を引き、その差が0.16以上の場合に条件付書式を使いA1セルとB1セルに色を付けたいのです。 当方条件付書式に 「数式が」=(A1-B1)>=0.16 上記の条件を入れてみたのですが、A1セルとB1セルに入れる数値によっては上手く色が付けられないで困っています。 参考値  A1「54.19」 B1「54.03」 上の数値だと色が付かなかったりします 他に良い方法ありましたら教えて頂けると幸いです、よろしくお願いいたします。

  • エクセルであるセルから上方向へ検索

    Bセルに”A”という文字が入っていた場合だけ、Dセルに数値を入たいと思っています。。 D列には数値が含まれているセルとそうでないものがあります。 B5に”A”が入った場合、D5からD列を上方向を検索します。 数値が含まれていないセルは無視して、 D5セルから一番位置が近い数値の入ったセルを見つけ出し、 見つけたセル内の数値に+1した値をD5セルに入れたいのですが、 どのようにしてよいか全くわかりません。 エクセルにお詳しい方、力を貸してください。 よろしくお願いします。

  • エクセル 検索

    Microsoft Excel 2007を使用しています。 条件を選んでマッチするデーターを表示する方法をお尋ねします。 A列、A1に「1」以下セルA10に「10」までの数字が昇順で入力されています。 セルB1からセルB10まで果物の名前が入力されています。名前の重複はありません。 セルC1に果物の名前を入力したらセルD1に関数を用いてそれに対応するA列の数値が表示されるようにできませんでしょうか。 エクセルのヘルプを見ましたが、旨く当てはまる関数を探し出せませんでした。 宜しくお願い致します。 例)  セルA5に「5」という数値があり、B5に「柿」が入力されている。 セルC1に「柿」と入力すると、セルD1に「5」が表示される。

  • エクセルのセルに色を表示させる方法

    あるセルに、ある条件を満たす数値が入った場合、「条件付き書式」の機能を使って、 そのセルの色を塗りつぶすことができますね。 数値の入ったセルに、色を付けることはできるのですが、 数値が入ったセルと、隣接するセルにも色を付けることはできますか。 例えば、セルa1に何か文字が入力されたら、セルa1だけでなくセルa2も赤く染まる、というようにしたいのです。 このとき、a2のセルにはどのような設定を施したらよいでしょうか。

  • 文字を検索し、同行の離れたセルに単語と数値を反映

    B列から「○○」という文字を検索し、 (1)該当した行のIセルに「小計」と入力 (2)Jセルに、Cセルの数値に「個」を付けたものを表示させる という作業を延々と繰り返しています。 該当する行はランダムにあります。 並べ替えが出来ない状態なので、VBAなのかな??と思うのですが、 マクロの記録ぐらいしかやったことがなくて…。 良い方法があれば教えて下さい。 お願いします。

  • エクセル 文字列検索と検索した文字列が含まれるセルへのジャンプ

    エクセル教えてください。 VBAは使ったことがありません。 現在Q&Aを作っています。 かなりボリュームが増えてしまったので、 文字列検索ができるようにしたいと思っています。 そこで、あるセルに調べたい文字列を入力し、 検索ボタンを押すと、その文字列が含まれるセルにジャンプする。 こんな機能は、エクセルでできませんでしょうか? マクロを組んだりすればよいのでしょうか? 教えてくださいー。

  • エクセルで、このようなセル検索は出来ますか?

    お世話になります。 エクセルで、このようなことは出来ますか? 教えて下さい。 Aのセルの立て方向に、1と、0、が、ランダムに入れてあります。 Bのセルの立て方向に、1と、0、が、ランダムに入れてあります。 それで、Aのセルに、1が記入されていて、且つ、Bのセルには、0が記入されている 行を、一発で、検索したいのです。 Aセルに、 1 が、記入されているのを検索する方法は、簡単で、理解しております。 でも、Aセル且つBセルのある条件で、検索する方法は、私にはわかりません。。 出来る方法は、ありますか?教えて下さい。 検索できたら、例えば、128行目に、 1-0 がありました。 次の検索を押すと、次の 1-0 を探すことができたら、最高です。。 どうでしょうか?

  • エクセルで検索>>セルの塗りつぶしをしたい。

    エクセルで、1つの列を検索して同じ文字列のセルを、塗りつぶす作業を、自動で行いたいのですが、教えていただけますか?