• 締切済み

マクロを使った重複チェックについて。

以下の様な表があります。 番号  名前  ジャンル   AAAA-1 佐藤   趣味     BBB-5  高橋  スポーツ CCC-35 酒井   音楽 AAAA-1 佐藤   趣味     BBB-6  高橋   スポーツ CCC-35 酒井   音楽 番号部分が重複していると、重複している行を順々に、 『○行目と×行目が重複しています”というようなメッセージが表示されるようにしたいのです。 (番号部分の桁数は、その時々によって変わります。) 行は1000行ほどあります。 ボタンをクリックすると、チェックのマクロが走るようにしたいのですが、 どのようにすれば良いのでしょうか? 教えてください。 宜しくお願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

こんな感じでどうでしょうか --------------------------------------------------------------- Public Sub 重複チェック() Dim base As Range, x As Range Dim i, DupList, a Set DupList = CreateObject("Scripting.Dictionary") Set base = Range("A2") 'データの始まりのセル i = 0 Do While (base.Offset(i).Value <> "") '空白セルで終わり Set x = base.Offset(i) If DupList.Exists(x.Value) Then DupList.Item(x.Value) = DupList.Item(x.Value) & "," & x.Row Else DupList.Add x.Value, x.Row End If i = i + 1 Loop For Each i In DupList.keys If InStr(DupList.Item(i), ",") > 0 Then MsgBox i & "が、" & StrConv(DupList.Item(i), vbWide) & "行目で重複しています" End If Next End Sub