【VBA】列で重複している値のセルを色塗りしてみた

VBA VBA

エクセルのマクロを利用して、列で重複している値のセルを色塗りしてみました。

広告

列で重複している値のセルを色塗りする

やりたいことは以下の画像のように、列で重複している値がある場合に、重複している値のセルを色塗りする、というものです。
画像では [a] という値が1行目、7行目、14行目にありますが、7行目、14行目の重複している値にだけ色塗りをしています。

特定の列で重複している値のセルを色塗りした状態

以下のvbaで色塗り可能です。

Sub HighlightDuplicates()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim dict As Object
    Dim lastRow As Long
    
    ' 対象のシートと列を設定
    Set ws = ThisWorkbook.ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    Set rng = ws.Range("A1:A" & lastRow)
    
    ' 重複を見つけて色を付けるための辞書を作成
    Set dict = CreateObject("Scripting.Dictionary")
    
    ' 重複するセルを色付け
    For Each cell In rng
        If cell.Value <> "" Then
            If dict.exists(cell.Value) Then
                cell.Interior.Color = RGB(255, 255, 0) ' 黄色で塗りつぶし
            Else
                dict.Add cell.Value, 1
            End If
        End If
    Next cell
End Sub
タイトルとURLをコピーしました