【エクセルマクロ】別シートと同じ文字があったら色付けする

VBA-別シートと同じ値に色付け-アイキャッチ ExcelVBA

エクセルマクロで、別シートと同じ文字があったら色付けする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でワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載