
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そのままというように
チェックを行いたいです。
お手数おかけ致しますがご教示お願い出来ませんでしょうか。
どうぞよろしくお願い致します。
No.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
早速のご回答まことにありがとうございました。
無事できました。
今後、応用が利くようにとソースの理解を一生懸命頑張っておりますが・・
難しいです。。ネットで検索しながら意味を調べてゆきます。
本当にありがとうございました。
No.2
- 回答日時:
マクロで行うことのメリットはさほど無いように思いますね。
通常の条件付き書式を設定することで十分でしょう。例えば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します。
以上で完成です。
条件付き書式でもできるのですね。
すごく勉強になりました。
マクロだけではなく他の方法(条件付き書式)なども頭に入れながら
やらないとダメですね。
早速のご回答まことにありがとうございました。
No.1
- 回答日時:
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
早速のご回答ありがとうございました。
条件付き書式のURLが2つとも飛ばず確認することができませんでしたが、
今回はマクロで頑張ってみようと思います。
マクロの参考URLを元に応用して頑張ってみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
rowsとcolsの意味
-
Excelで、あるセルの値に応じて...
-
Excel VBA_2000ハイパーリンク...
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
VBA 何かしら文字が入っていたら
-
【Excel VBA】カンマと改行コー...
-
VBA: 2列のリストボックスの2列...
-
URLのリンク切れをマクロを使っ...
-
エクセル 2つの表の並べ替え
-
複数の列の値を結合して別の列...
-
Cellsのかっこの中はどっちが行...
-
4月~3月まで12カ月横に並んだ...
-
C# Datagridview 行ヘッダーの...
-
データグリッドビューの一番最...
-
VB2005EE:DataGridViewでチェ...
-
複数csvを横に追加していくマク...
-
VBAで、特定の文字より後を削除...
-
VBAのFind関数で結合セルを検索...
-
C# dataGridViewの値だけクリア
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cellsのかっこの中はどっちが行...
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
VBAのFind関数で結合セルを検索...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
【VBA】2つのシートの値を比較...
-
DataGridViewに空白がある場合...
-
VBAで、特定の文字より後を削除...
-
URLのリンク切れをマクロを使っ...
-
エクセル 2つの表の並べ替え
-
VBAを使って検索したセルをコピ...
-
VBAコンボボックスで選択した値...
-
VBAでのリスト不一致抽出について
-
複数csvを横に追加していくマク...
-
C# dataGridViewの値だけクリア
-
データグリッドビューの一番最...
おすすめ情報