|
参考までに 別法で、
Dictionaryオブジェクトを使って重複チェックすることも
できます。
(たぶん、こちらのほうが速いと思います。)
Sub CheckDup()
Dim i As Long
Dim v, du
Dim ss As String
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
With Range("D2", Cells(Rows.Count, "E").End(xlUp)).Resize(, 2)
v = .Value 'D&E列用データ配列
ReDim du(1 To UBound(v), 0 To 1) 'J列、K列出力用配列
For i = 1 To UBound(v)
ss = v(i, 1) & v(i, 2)
du(i, 0) = ss
If dic.Exists(ss) Then
If dic(ss) > 0 Then
du(dic(ss), 1) = "重複"
dic(ss) = Empty
End If
du(i, 1) = "重複"
Else
dic(ss) = i
End If
Next
.Offset(, 6).Value = du 'チェック結果を貼り付ける
End With
MsgBox "重複チェック終了"
End Sub
上のコードは、D列とE列の文字列を結合したものもJ列に出力していますけど、
この列は作業用と考えると、 K列だけを出力する風に書き換えることもできます。
|
|