| 
    
     |  | ▼kanabun さん: 
 重複チェックでも色々なやり方があるんですね。
 
 下記のコードも今、試しましたが、
 同様な結果になりました。
 
 データ量が多いと、きっとこちらの方が早く処理される
 のでしょうね。
 
 kanabun さんの高度なマクロ知識に、感服しました。
 色々と勉強になります。
 本当に有難うございます^^
 
 
 >参考までに 別法で、
 >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列だけを出力する風に書き換えることもできます。
 
 |  |