エクセルマクロで、別シートと同じ文字があったら色付けするVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。
別シートと同じ文字があったら色付け
以下のマクロを実行すると、条件一致するセルに色付けします。
Sub 別シートと同じ値を着色()
Dim List_Sht As Worksheet
Dim Cor_Sht As Worksheet
Dim LastRow As Long
Dim i As Long
Dim J As Long
Dim SearchWord() As Variant
Set List_Sht = Sheets("リスト")
Set Cor_Sht = Sheets("色付対象")
'Cor_Shtの最終行取得
LastRow = Cor_Sht.Cells(Rows.Count, 1).End(xlUp).Row
'Cor_Shtの値を配列格納
For i = 1 To LastRow
ReDim Preserve SearchWord(i)
SearchWord(i) = Cor_Sht.Cells(i, 1)
Next i
'List_Shtの最終行取得
LastRow = List_Sht.Cells(Rows.Count, 1).End(xlUp).Row
Application.DisplayAlerts = False
'List_Shtをループして、Cor_Shtと同じ値があったら色付け
For i = 1 To UBound(SearchWord)
'2~最終行までループ
For J = 2 To LastRow
If List_Sht.Cells(J, 1) = SearchWord(i) Then
'セルに色付け
List_Sht.Cells(J, 1).Interior.Color = 65535
End If
Next J
Next i
Application.DisplayAlerts = True
End Sub
マクロ実行前
「リスト」に色付けしたい値を「色付対象」に入力しておきます。
マクロ実行後
「色付対象」に存在する「リスト」の値を塗りつぶします。
別シートと同じ文字があったら色付け(複数条件)
以下のマクロを実行すると、複数の条件が一致する行に着色します。
Sub 別シートと同じ値を着色()
Dim List_Sht As Worksheet
Dim Cor_Sht As Worksheet
Dim LastRow As Long
Dim i As Long
Dim J As Long
Dim SearchWord() As Variant
Set List_Sht = Sheets("リスト")
Set Cor_Sht = Sheets("色付対象")
'Cor_Shtの最終行取得
LastRow = Cor_Sht.Cells(Rows.Count, 1).End(xlUp).Row
'Cor_Shtの値を配列格納
For i = 1 To LastRow
ReDim Preserve SearchWord(i)
SearchWord(i) = Cor_Sht.Cells(i, 1) & Cor_Sht.Cells(i, 2)
Next i
'List_Shtの最終行取得
LastRow = List_Sht.Cells(Rows.Count, 1).End(xlUp).Row
Application.DisplayAlerts = False
'List_Shtをループして、Cor_Shtと同じ値があったら色付け
For i = 1 To UBound(SearchWord)
'2~最終行までループ
For J = 2 To LastRow
If List_Sht.Cells(J, 1) & List_Sht.Cells(J, 2) = SearchWord(i) Then
'行に色付け
Rows(J).Interior.Color = 65535
End If
Next J
Next i
Application.DisplayAlerts = True
End Sub
マクロ実行前
「リスト」に色付けしたい値を「色付対象」に入力しておきます。
マクロ実行後
「色付対象」のA列とB列が両方一致するデータがあったら、
「リスト」の行を色付けします。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】色付けを自動化する使用例まとめ
【エクセルマクロ】色付け処理を自動化する:超便利32選
...
「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載
リンク