質問番号:1418207622

A列とB列を比較して同じデータがあれば「1回だけ」B列の該当データに色を付けるようなマクロや関数をお教えいただきたいです。 Add Star
図のように、一致するデータに色を付けたいのですが、それを1回限りにして、B列に余計なデータがないかどうか調べたいのです。
類似の方法でも構いません。(A列とB列を比較し、一致するデータがあればC列に、B列の該当セルの個数を出す等)
実際のデータはA列、B列共に、1500行ぐらいまで入っております。
お力添えいただければ幸いです。
よろしくお願いします。
http://q.hatena.ne.jp/images/question/1418207/1418207622.jpg

サンプルシートのA列は列番号(範囲:1〜1500 重複無し)をセット。
B列は乱数関数(rand関数)を数式にセット(範囲:1〜2000 重複有り)

Option Explicit

Sub main()

Dim lp1, lp2 As Long        ' カウンタ
Dim ARow, BRow As Long      ' 最終行

    ' サンプルシートをコピー
    If Worksheets.Count = 1 Then
        Worksheets(1).Copy After:=Sheets(1)
    End If

    ' コピーしたシートで処理
    With Worksheets(2)
        ARow = .Range("A" & Rows.Count).End(xlUp).Row   ' A列最終行
        BRow = .Range("B" & Rows.Count).End(xlUp).Row   ' B列最終行

        ' A列セルの内容とB列セルの内容が一致した場合、B列セルの背面色を黄色に変更
        For lp1 = 1 To ARow
            For lp2 = 1 To BRow
                If .Range("A" & lp1) = .Range("B" & lp2) Then
                    .Range("B" & lp2).Interior.Color = vbYellow
                    Exit For
                End If
            Next lp2
        Next lp1
    End With

End Sub