『特定の文字を含む行をA〜Dまでの範囲でセルの色を変更する』(茶葉)  A   B   C   D … 1 … A県a市 りんご … … 2 … A県b市 ぶどう 3 … B県c市 ぶどう 4 … B県d市 みかん 5 … C県e市 りんご 6 …  …   … 上記データがあったときに 1.B列にA県を含む場合  橙色 2.C列にりんごを含む場合 桃色 3.C列にぶどうを含む場合 桃色 にセルの色付け(可能ならA〜Dの範囲だけ、難しいなら1行まるまる)したいです。 現状、1.の条件で該当セルのみの色付けは出来ました。 Dim c Dim n As Range For Each n In Range("B1", Cells(Rows.Count, 1).End(xlUp)) If InStr(n.Value, "A県") Then c = 45 Else c = 0 n.Interior.ColorIndex = c しかし条件2を組み入れようとすると条件1の色が消えてします。 目的が達成できれば上記コードでなくても良いので、お力添えを頂きたいです。 よろしくお願いいたします。 < 使用 Excel:Excel2016、使用 OS:Windows10 > ---- マクロではなく条件付き書式ではダメなんですか? (もこな2 ) 2022/04/11(月) 19:24 ---- 1行めは、何色になればいいのですか? (わからん) 2022/04/11(月) 19:42 ---- もこな2様 >毎日新しいデータが来るので条件付き書式だとダメだとおもったのですが 条件付き書式を追加するコードにすれば良いかもしれません。ありがとうございます。 わからん様 >すみません表記が抜けていました。 1<2.3の優先度で、桃色になれば大丈夫です。 (茶葉) 2022/04/11(月) 20:03 ---- >しかし条件2を組み入れようとすると条件1の色が消えてします。 「Else c = 0」のせいですかね。 ↓こんな感じにすればいいかと思います。 c = 0 If InStr(n.Value, "A県") Then c = 45 '条件1 If 条件2 Then c = ?? If 条件3 Then c = ?? n.Interior.ColorIndex (わからん) 2022/04/11(月) 21:23 ---- わからん様 >分かりやすくありがとうございます! 明日早速試してみます。ありがとうございます (茶葉) 2022/04/12(火) 00:14 ---- ■1 >条件付き書式を追加するコードにすれば良いかもしれません。 よくわかりませんが、マクロでの処理はマストなんですか? 私は【マクロではなく】条件付き書式ではダメなんですか?と確認したんですが・・・ ■2 余計なツッコミかもしれませんが、↓だとnにA列のセルも取り出されますよね。それ必要なんですか? For Each n In Range("B1", Cells(Rows.Count, 1).End(xlUp)) ■3 >2.C列にりんごを含む場合 桃色 >3.C列にぶどうを含む場合 桃色 【含む】場合でないとマズいのでしょうか? 例示のとおりだとすれば、C列が「りんご」か「ぶどう」なら桃色という条件にも出来そうですが。 ■4 Interior.ColorIndex ↑のように色パレットを使っています。 困ってないなら別にいいですが、思った色にならないといったことなら↓を読むとよいでしょう。 http://officetanaka.net/excel/vba/graph/24.htm ■5 ということを踏まえると、例えば↓のようなアプローチもあると思います。 興味があれば【ステップ実行】して研究してみてください。 Sub 別案() Dim 行 As Long, 色 As Long Stop 'ブレークポイントの代わり With ActiveSheet For 行 = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row Select Case .Cells(行, "C").Value Case "りんご", "ぶどう" 色 = RGB(255, 0, 255) Case Else If .Cells(行, "B").Value Like "*A県*" Then 色 = RGB(255, 192, 0) Else 色 = xlNone End If End Select Intersect(.Rows(行), .Range("A:D")).Interior.Color = 色 Next 行 End With End Sub (もこな2) 2022/04/12(火) 02:25 ---- もこな2様 >すでにマクロが組み込まれているエクセルに毎日リセットをかけてから表示形式を整えるマクロに当内容を追加したいと考えています。条件付き書式で行おうとしたのですがリセット時に消えてしまったので今回マクロの追加を考えた次第です。 多くの方法や改善の提供ありがとうございます!今回のことでマクロの勉強を始めたのでとても助かりました。 (茶葉) 2022/04/12(火) 17:12 ---- ■6 >条件付き書式で行おうとしたのですがリセット時に消えてしまった その「リセット」というのがどんな操作かわかりませんが、もちろんマクロで条件付き書式を設定し直すことも出来ます。 こちらも興味があれば研究してみてください。 Sub 研究用() Stop With ActiveSheet.Range("A:D") .FormatConditions.Delete .FormatConditions.Add(Type:=xlExpression, Formula1:="=COUNTIF($C1,""りんご"")").Interior.Color = RGB(255, 0, 255) .FormatConditions.Add(Type:=xlExpression, Formula1:="=COUNTIF($C1,""ぶどう"")").Interior.Color = RGB(255, 0, 255) .FormatConditions.Add(Type:=xlExpression, Formula1:="=COUNTIF($B1,""*A県*"")").Interior.Color = RGB(255, 192, 0) End With End Sub (もこな2 ) 2022/04/12(火) 18:37