読者です 読者をやめる 読者になる 読者になる

Logic Delight

明日のワシは忘れてしまうから、コードにはコメントを書くのです。

選択範囲内の重複値をハイライトする

なんだかネストが深いしアルゴリズムも効率の悪い雰囲気満載ですが、疲れた頭ですぐ作るとこーなっちゃう。とりあえず動く気配がするので、ま、いっか。

' 選択範囲内の重複値をハイライトする
Sub HighlightDuplication()
    Const DUPLICATE_COLOR_INDEX As Integer = 46
    Const DUPLICATE_PATTERN = xlSolid
    Dim cellA As Range
    Dim cellB As Range
    
    For Each cellA In Selection
        ' 重複判定済みセルと空セルはスキップ
        If cellA.Interior.ColorIndex <> 46 And cellA.Value <> "" Then
            For Each cellB In Selection
                If cellA.Row <> cellB.Row Or cellA.Column <> cellB.Column Then
                    '自身じゃないセルの値比較
                    If cellA.Value = cellB.Value Then
                        ' 重複していたらどっちも色付け
                        With cellA.Interior
                            .ColorIndex = DUPLICATE_COLOR_INDEX
                            .Pattern = xlSolid
                        End With
                        With cellB.Interior
                            .ColorIndex = DUPLICATE_COLOR_INDEX
                            .Pattern = xlSolid
                        End With
                    End If
                End If
            Next
        End If
    Next
End Sub

VBAマクロを使わなくとも、出来ることはできる。
Excel(エクセル)実用編:重複データのチェック&重複なしのデータ抽出