Option Explicit
Public Sub 重複データ抽出()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Dim maxrow1 As Long
Dim row3 As Long
Dim row31 As Long
Dim row2 As Long
Dim key As String
Dim old_key As String
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
Set sh3 = Worksheets("作業用")
sh2.Cells.ClearContents
sh3.Cells.ClearContents
maxrow1 = sh1.Cells(Rows.Count, "A").End(xlUp).Row
sh2.Cells(1, 1).Resize(1, 13).Value = sh1.Cells(1, 1).Resize(1, 13).Value
sh3.Cells(1, 1).Resize(maxrow1 - 1, 13) = sh1.Cells(2, 1).Resize(maxrow1 - 1, 13).Value
sh3.Range("A1:M" & maxrow1 - 1).Sort key1:=sh3.Range("A1"), Order1:=xlAscending, key2:=sh3.Range("B1"), Order1:=xlAscending, Header:=xlNo
old_key = ""
row2 = 2
For row3 = 1 To maxrow1 - 1
key = sh3.Cells(row3, 1).Value & "|" & sh3.Cells(row3, 2).Value
If key = old_key Then
If row31 <> 0 Then
sh2.Cells(row2, 1).Resize(1, 13).Value = sh3.Cells(row31, 1).Resize(1, 13).Value
row31 = 0
row2 = row2 + 1
End If
sh2.Cells(row2, 1).Resize(1, 13).Value = sh3.Cells(row3, 1).Resize(1, 13).Value
row2 = row2 + 1
Else
row31 = row3
End If
old_key = key
Next
MsgBox ("完了")
End Sub
T3B0aW9uIEV4cGxpY2l0ClB1YmxpYyBTdWIg6YeN6KSH44OH44O844K/5oq95Ye6KCkKICAgIERpbSBzaDEgQXMgV29ya3NoZWV0CiAgICBEaW0gc2gyIEFzIFdvcmtzaGVldAogICAgRGltIHNoMyBBcyBXb3Jrc2hlZXQKICAgIERpbSBtYXhyb3cxIEFzIExvbmcKICAgIERpbSByb3czIEFzIExvbmcKICAgIERpbSByb3czMSBBcyBMb25nCiAgICBEaW0gcm93MiBBcyBMb25nCiAgICBEaW0ga2V5IEFzIFN0cmluZwogICAgRGltIG9sZF9rZXkgQXMgU3RyaW5nCiAgICBTZXQgc2gxID0gV29ya3NoZWV0cygiU2hlZXQxIikKICAgIFNldCBzaDIgPSBXb3Jrc2hlZXRzKCJTaGVldDIiKQogICAgU2V0IHNoMyA9IFdvcmtzaGVldHMoIuS9nOalreeUqCIpCiAgICBzaDIuQ2VsbHMuQ2xlYXJDb250ZW50cwogICAgc2gzLkNlbGxzLkNsZWFyQ29udGVudHMKICAgIG1heHJvdzEgPSBzaDEuQ2VsbHMoUm93cy5Db3VudCwgIkEiKS5FbmQoeGxVcCkuUm93CiAgICBzaDIuQ2VsbHMoMSwgMSkuUmVzaXplKDEsIDEzKS5WYWx1ZSA9IHNoMS5DZWxscygxLCAxKS5SZXNpemUoMSwgMTMpLlZhbHVlCiAgICBzaDMuQ2VsbHMoMSwgMSkuUmVzaXplKG1heHJvdzEgLSAxLCAxMykgPSBzaDEuQ2VsbHMoMiwgMSkuUmVzaXplKG1heHJvdzEgLSAxLCAxMykuVmFsdWUKICAgIHNoMy5SYW5nZSgiQTE6TSIgJiBtYXhyb3cxIC0gMSkuU29ydCBrZXkxOj1zaDMuUmFuZ2UoIkExIiksIE9yZGVyMTo9eGxBc2NlbmRpbmcsIGtleTI6PXNoMy5SYW5nZSgiQjEiKSwgT3JkZXIxOj14bEFzY2VuZGluZywgSGVhZGVyOj14bE5vCiAgICBvbGRfa2V5ID0gIiIKICAgIHJvdzIgPSAyCiAgICBGb3Igcm93MyA9IDEgVG8gbWF4cm93MSAtIDEKICAgICAgICBrZXkgPSBzaDMuQ2VsbHMocm93MywgMSkuVmFsdWUgJiAifCIgJiBzaDMuQ2VsbHMocm93MywgMikuVmFsdWUKICAgICAgICBJZiBrZXkgPSBvbGRfa2V5IFRoZW4KICAgICAgICAgICAgSWYgcm93MzEgPD4gMCBUaGVuCiAgICAgICAgICAgICAgICBzaDIuQ2VsbHMocm93MiwgMSkuUmVzaXplKDEsIDEzKS5WYWx1ZSA9IHNoMy5DZWxscyhyb3czMSwgMSkuUmVzaXplKDEsIDEzKS5WYWx1ZQogICAgICAgICAgICAgICAgcm93MzEgPSAwCiAgICAgICAgICAgICAgICByb3cyID0gcm93MiArIDEKICAgICAgICAgICAgRW5kIElmCiAgICAgICAgICAgIHNoMi5DZWxscyhyb3cyLCAxKS5SZXNpemUoMSwgMTMpLlZhbHVlID0gc2gzLkNlbGxzKHJvdzMsIDEpLlJlc2l6ZSgxLCAxMykuVmFsdWUKICAgICAgICAgICAgcm93MiA9IHJvdzIgKyAxCiAgICAgICAgRWxzZQogICAgICAgICAgICByb3czMSA9IHJvdzMKICAgICAgICBFbmQgSWYKICAgICAgICBvbGRfa2V5ID0ga2V5CiAgICBOZXh0CiAgICBNc2dCb3ggKCLlrozkuoYiKQpFbmQgU3ViCg==