Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


66459 / 76734 ←次へ | 前へ→

【14838】Re:コードの重複チェック
発言  ichinose  - 04/6/8(火) 19:29 -

引用なし
パスワード
   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

まっ、参考程度に確認して下さい。
2 hits

【14823】コードの重複チェック ikke 04/6/8(火) 16:37 質問
【14825】Re:コードの重複チェック ぴかる 04/6/8(火) 17:07 回答
【14830】Re:コードの重複チェック BOTTA 04/6/8(火) 18:08 回答
【14838】Re:コードの重複チェック ichinose 04/6/8(火) 19:29 発言
【14840】コードの重複チェック-番外編 小林 04/6/8(火) 19:48 発言
【14877】Re:コードの重複チェック-番外編 BOTTA 04/6/9(水) 0:02 発言
【14850】Re:コードの重複チェック 訂正 大きく ichinose 04/6/8(火) 20:59 発言
【14932】Re:コードの重複チェック 訂正 大きく ikke 04/6/10(木) 18:13 お礼

66459 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free