| 
    
     |  | ikkeさん、ぴかるさん、BOTTA さん、こんばんは。 
 >
 >重複チェックなら、「入力規則」が便利ですよ。
 >ただし、VBAではありません。
 >
 >>登録用のシートを作成して番号その他の登録を行ないます。
 >>登録コードは手入力なので重複してしまう可能性があります。
 >
 >「登録コード」はすべてA列に入力するものとして、
 >まず、A列全体を選択状態にして、「データ」→「入力規則」
 >「設定」タブの「入力値の種類」で「ユーザー設定」を選び、
 >「数式」欄に
 >=COUNTIF(A:A,A1)=1と入力。
 
 私も↑に賛成です。
 
 が、敢えてVBAでやれば、
 
 '=============================================================
 Sub test()
 Dim rng As Range
 Dim wk() As Variant
 Dim ans() As Variant
 Set rng = Range("a2", Cells(Rows.Count, 1).End(xlUp))
 If rng.Row > 1 And rng.Count > 1 Then
 ReDim wk(1 To rng.Count)
 For idx = 1 To rng.Count
 wk(idx) = rng.Cells(idx).Text
 Next
 ans() = mk_dup_array(wk())
 MsgBox Join(ans, vbLf)
 End If
 End Sub
 '==================================================================
 Function mk_dup_array(myarray() As Variant) As Variant
 Dim myclct As New Collection
 Dim dup()
 Dim jdx As Long
 On Error Resume Next
 For idx = LBound(myarray(), 1) To UBound(myarray(), 1)
 Err.Clear
 myclct.Add myarray(idx), myarray(idx)
 If Err.Number <> 0 Then
 ReDim Preserve dup(jdx)
 dup(jdx) = myarray(idx)
 jdx = jdx + 1
 End If
 Next
 Set myclct = Nothing
 mk_dup_array = dup()
 On Error GoTo 0
 End Function
 
 まっ、参考程度に確認して下さい。
 
 
 |  |