エクセルマクロで、重複データを抽出しメッセージボックス表示するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
重複データを抽出しメッセージボックス表示
以下のExcelVBAを実行すると、重複データを抽出しメッセージボックス表示します。
Sub 重複データを抽出()
Dim DicName As Variant
Dim DicCount As Variant
Dim i As Long
Dim GetName As String
Dim myKey As Variant
Dim myList As Variant
Dim myItem As Variant
Dim msg As String
'連想配列
Set DicName = CreateObject("Scripting.Dictionary")
Set DicCount = CreateObject("Scripting.Dictionary")
'A列のデータを配列に格納
myList = Range("A1", Range("A" & Rows.Count).End(xlUp))
'配列をループ
For i = 2 To UBound(myList)
'値を変数へ
GetName = Cells(i, 1)
'重複しないリストを連想配列へ
If Not DicName.Exists(GetName) Then
DicName.Add GetName, GetName
Else
'重複しているリストを連想配列へ
If Not DicCount.Exists(GetName) Then
DicCount.Add GetName, 2
Else
'重複件数を数える
DicCount(myList(i, 1)) = DicCount(myList(i, 1)) + 1
End If
End If
Next i
myKey = DicCount.keys
myItem = DicCount.items
'メッセージボックス表示
For i = 0 To UBound(DicCount.items)
msg = msg & myKey(i) & ":" & myItem(i) & vbCrLf
Next i
MsgBox "【重複しているデータ】" & vbCrLf & msg
Set DicName = Nothing
Set DicCount = Nothing
End Sub
マクロ実行後
A列の中で、重複しているデータを抽出してメッセージボックスに表示します。
重複しているデータ件数もメッセージボックスに表示するので、
どのデータが何個あるのか把握することができます。

上記コードの2か所を変更することで動作します。
参照先をA列 → C列へ変更します。
・1つ目の変更箇所
myList = Range(“A1”, Range(“A” & Rows.Count).End(xlUp))
↓
myList = Range(“C1″, Range(“C” & Rows.Count).End(xlUp))
・2つ目の変更箇所
GetName = Cells(i, 1)
↓
GetName = Cells(i, 3)

この記事がお役に立ちますと幸いです。
・【エクセルマクロ】重複データを自動処理する使用例まとめ

【エクセルマクロ】重複データを自動操作:超便利13選
エクセルマクロで、重複データを自動操作するVBAコードをご紹介します。どのマクロコードも、コピペで使用できます。ぜひお試しください!
[最速入門] ChatGPTに任せる Excelマクロ&VBA 面倒なプログラミングは秒で片づけよう
ChatGPTと対話しながら身につける、新しいVBA入門
リンク
★★★★★ 4.6 ※ Amazonカスタマーレビューより
✓マクロ記録とChatGPTを組み合わせた学習法が実践的で、すぐ現場で使える
✓「過不足のない指示」の出し方を学べ、AIとの対話スキルが身につく
✓変数・条件分岐・ループなどVBAの基礎もしっかり解説されている