プロが教える店舗&オフィスのセキュリティ対策術

   A             B               C

1 豚汁           豚の角煮          カレー
2 カレーライス      クリームカレー        煮   
3 味噌汁         ハンバーグシチュー    ライス  
4 ハンバーグ       赤飯             シチュー
5 オムレツ        鯖の味噌煮
6 オムライス
7 豚汁
 

EXCELに上記のようにA列、B列、C列にメニューが書いてあります。
【やりたいこと2点】
(1)A列とC列を比較
上から順にC列に入っている文字がA列のいずれかに含まれて(部分一致して)いれば、
セルを赤色に色塗り。
例)C1の「カレー」はA列の「カレーライス」に部分一致していますので
『C1』のセルを赤塗り、続いてC2の「煮」はA列のいずれかにも一致していないので、そのまま。
C3の「ライス」は「カレーライス」「オムライス」に部分一致していますので
『C3』のセルを赤塗り・・・・・
というように、C列に入っている値を上から順に見て行き赤塗りorそのままというように
チェックを行いたいです。

(2)A列とB列とC列を比較
上から順にC列に入っている文字がA列、B列のどちらにも含まれていれば(部分一致)していれば、
セルを緑色に色塗り。
※(1)の作業で赤塗になった箇所は上書きで緑になってOKです。
例)C1の「カレー」はA列の「カレーライス」B列の「クリームカレー」に部分一致しているので
『C1』のセルを"赤塗り"⇒"緑塗り"に変更、続いてC2の「煮」はB列に部分一致するメニューがあるが
A列には存在しないので、セルの色はそのまま。
というように、Cの列に入っている値を上から順に見て行き緑塗りorそのままというように
チェックを行いたいです。

お手数おかけ致しますがご教示お願い出来ませんでしょうか。
どうぞよろしくお願い致します。

A 回答 (3件)

一例です。



Sub sample()
For i = 1 To Cells(Rows.Count, "C").End(xlUp).Row
mycl = xlNone
Set a = Columns("A:A").Find(Cells(i, "C"))
If Not a Is Nothing Then
Set a = Columns("B:B").Find(Cells(i, "C"))
If Not a Is Nothing Then
mycl = 4
Else
mycl = 3
End If
End If
Cells(i, "C").Interior.ColorIndex = mycl
Next
End Sub
    • good
    • 0
この回答へのお礼

早速のご回答まことにありがとうございました。
無事できました。

今後、応用が利くようにとソースの理解を一生懸命頑張っておりますが・・
難しいです。。ネットで検索しながら意味を調べてゆきます。

本当にありがとうございました。

お礼日時:2011/09/02 16:41

マクロで行うことのメリットはさほど無いように思いますね。

通常の条件付き書式を設定することで十分でしょう。
例えばC列を選択します。C1セルがアクティブセルの状態になっています。
そこで「条件付き書式」の設定で「数式が・・・」で数式の窓には最初の条件の設定でしたら次の式を入力して「書式」で「塗りつぶし」のタブから赤色を選択してOKします。

=AND(C1<>"",COUNTIF(A:A,"*"&C1&"*")>0)

次に第2の条件ですが同じようにC列を選択して「条件付き書式」の「数式で・・」で数式の窓には次の式を入力します。

=AND(C1<>"",AND(COUNTIF(A:A,"*"&C1&"*")>0,COUNTIF(B:B,"*"&C1&"*")>0))

「書式」の塗りつぶしのタブから緑色を選択してOKします。
以上で完成です。
    • good
    • 0
この回答へのお礼

条件付き書式でもできるのですね。
すごく勉強になりました。
マクロだけではなく他の方法(条件付き書式)なども頭に入れながら
やらないとダメですね。

早速のご回答まことにありがとうございました。

お礼日時:2011/09/02 16:44

EXCELのバージョンは何をお使いですか?


マクロでなくとも、エクセルの基本機能「条件付き書式」で充分可能だと思います
http://www2.odn.ne.jp/excel/waza/cformat.htm
http://www.eurus.dti.ne.jp/~yoneyama/Excel/jyo-s …

マクロでやるなら、これのベストアンサーを参考しては如何でしょうか?
http://oshiete.goo.ne.jp/qa/4878190.html
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。
条件付き書式のURLが2つとも飛ばず確認することができませんでしたが、
今回はマクロで頑張ってみようと思います。

マクロの参考URLを元に応用して頑張ってみます。
ありがとうございました。

お礼日時:2011/09/02 16:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!