|    | 
     ▼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列だけを出力する風に書き換えることもできます。 
 
 | 
     
    
   |