【エクセルマクロ】重複データを値ごとに色分け:自動化が最強かも

エクセルマクロ 重複データを値ごとに色分け アイキャッチ エクセルマクロで効率化する

エクセルマクロで、重複データを値ごとに色分けするVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひ、お試しください!

重複データを値ごとに色分け

以下のExcelVBAを実行すると、重複データを値ごとに色分けします。

Sub 重複データを値ごとに色わけ()
 
Dim DicName As Variant
Dim DicColor As Variant
Dim i As Long
Dim j As Long
Dim Q As Long
Dim GetName As String
Dim myKey As Variant
Dim myList As Variant

    '連想配列
    Set DicName = CreateObject("Scripting.Dictionary")
    Set DicColor = CreateObject("Scripting.Dictionary")
    
    'A列のデータを配列に格納
    myList = Range("A1", Range("A" & Rows.Count).End(xlUp))

    '配列をループ
    For i = 2 To UBound(myList)

        '値を変数へ
        GetName = Cells(i, 1)

        '重複しないリストを連想配列へ
        If Not DicName.Exists(GetName) Then
            DicName.Add GetName, GetName
        Else
            '重複しているリストを連想配列へ(色付け対象のリスト)
            If Not DicColor.Exists(GetName) Then
                 DicColor.Add GetName, GetName
            End If
        End If

    Next i

    myKey = DicColor.keys
    Q = 20
     
    '重複しているリストをループ
    For i = 0 To UBound(DicColor.items)
        
        'セルA2から最終行までループ
        For j = 2 To UBound(myList)
        
            If Cells(j, 1) = myKey(i) Then
            
                'セルを色付け
                Cells(j, 1).Interior.Color = RGB(0, 50 + Q, 100 + Q)
            
            End If
        Next j
    
    Q = Q + 60
    
    Next i
    
    Set DicName = Nothing
    Set DicColor = Nothing
     
End Sub

 

マクロ実行後

A列の中で、重複していて同じ値のセルに同じ色をつけます。

下図を例にすると、「グレープフルーツ」のセルは、すべて同じ色がついています。

同じ色をつけることで、同じ値のセルの位置がわかりやすくなります。

※今回の例では、重複している値は4個ありました。
(アケビ、オレンジ、イチゴ、グレープフルーツ)

 もし重複している値が9個以上ある場合は、後半の重複値に色がつかなくなるようなので、
 [Interior.Color] の数値を修正する必要があります。

 

【エクセルマクロ】重複データを抽出しメッセージボックスに表示
エクセルマクロで、重複データを抽出しメッセージボックス表示するVBAコードをご紹介します。 このペ...