• ベストアンサー

検索値と検索対象の数字が一致の場合にセルを塗り潰す

このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がおみえでしたらよろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】 添付図のとおり、検索値の数字で検索対象の数字をチェックして、同じ数字であれば、水色で検索対象のセルを塗り潰す。  検索値:G1~K5の中に1~31までの数字が重複ありで25個入っている。  検索対象:A1~E20の中に1~31までの数字が重複ありで入っている。 上記を実現する方法をVBAで実現する方法が知りたいです。   【注意事項】   ・検索値と検索対象の数字は毎回異なります。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

条件つき書式で 数式を =COUNTIF($G$1:$K$5,A1) 範囲を =$A$1:$E$20 (最初に上記の範囲$A$1:$E$20を選択した状態で数式と色を設定しても同じです) で塗りつぶしの色を設定してください。

sazanami0422
質問者

お礼

いつもお世話になっております。 早速のご回答ありがとうございます。 条件付き書式でスッキリ解決しました。 (私の添付図の塗り潰しの誤りもわかりました)また、VBAも教えて頂きありがとうございました。

Powered by GRATICA

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

あとからなんか思いつくので一度にまとめて回答しなくてすみません。 VBAだとこのような感じもありかもです Sub Test2() Dim mRng As Range For Each mRng In Range("A1:E20") If WorksheetFunction.CountIf(Range("G1:K5"), mRng.Value) > 0 Then mRng.Interior.Color = vbCyan End If Next End Sub

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

VBAでしたら Sub Test() Dim mRng As Range, mRngB As Range For Each mRng In Range("A1:E20") For Each mRngB In Range("G1:K5") If mRng.Value = mRngB.Value Then mRng.Interior.Color = vbCyan End If Next Next End Sub

関連するQ&A