Excel VBA 複合キーの重複行をチェックしてメッセージを表示する
Excel VBA で表にある複数列からなるキー項目に、重複チェックをする方法
Dictionary
データを「キー・アイテム」のペアで格納できるオブジェクト
他言語でいうところの、Key・Valueで格納できる連想配列
DictionaryのメソッドであるExistsメソッドで重複をチェックに利用する
Usage
Sub sample_Duplicate_2()
Dim ws As Worksheet
Set ws = Sheets("Sheet5")
' 参照設定 → microsoft scripting runtime を有効にしておく
Dim checkDic As Dictionary
Set checkDic = New Dictionary
Dim key As String
Dim i As Long
For i = 2 To 6
' 複合キー
key = ws.Cells(i, 1) & ws.Cells(i, 2)
If checkDic. Exists(key) Then
MsgBox "KEY項目が重複しています。"
Else
checkDic.Add key, 0
End If
Next
End Sub
Dictionaryを使用するには、参照設定でMicrosoft Scripting runtimeを有効にする必要がある

メニューの参照設定からMicrosoft Scripting runtimeを選択

サンプルでは、4行目と5行目が重複している

ループのなかでDictionaryのKeyとして値が順番に格納されていることがウォッチから確認できる

同じkeyが存在した時点で、エラーメッセージが表示される
Reference
Dictionary オブジェクト
Exists メソッド
オブジェクト (Visual Basic for Applications)