| 
    
     |  | こんばんは。 同じ質問なら、前のレスに続けた方が良かったかも?
 
 シートで考えてみたので参考にしてください。
 
 シート1A列にデータ
 シート2A列にデータ
 
 両A列を比較して違うものがあったら、A列にシート1の値を、B列にシート2の値を
 新しくシートを作り書き出します。
 ただし、各A列には重複がないものとします。
 
 ブックにはシート1とシート2しかないものとします。(あってもかまいませんが)
 
 Sub test()
 Dim Sh1 As Worksheet
 Dim Sh2 As Worksheet
 Dim NewSh As Worksheet
 Dim myRow1 As Long
 Dim myRow2 As Long
 Dim myCnt As Long
 Dim myVal1 As Variant
 Dim myVal2 As Variant
 Dim myDic As Object
 Dim i As Long
 
 Set Sh1 = Sheets("Sheet1")
 Set Sh2 = Sheets("Sheet2")
 Set myDic = CreateObject("Scripting.Dictionary")
 
 myRow1 = Sh1.Range("A65536").End(xlUp).Row
 myRow2 = Sh2.Range("A65536").End(xlUp).Row
 
 If myRow1 >= myRow2 Then
 myCnt = myRow1
 Else
 myCnt = myRow2
 End If
 
 myVal1 = Sh1.Range("A1").Resize(myCnt).Value
 myVal2 = Sh2.Range("A1").Resize(myCnt).Value
 
 For i = 1 To myCnt
 If myVal1(i, 1) <> myVal2(i, 1) Then
 myDic(myVal1(i, 1)) = myVal2(i, 1)
 End If
 Next
 
 Set NewSh = Sheets.Add(after:=Sheets(Sheets.Count))
 With NewSh.Range("A1").Resize(myDic.Count)
 .Value = Application.Transpose(myDic.keys)
 .Offset(, 1).Value = Application.Transpose(myDic.Items)
 End With
 Set Sh1 = Nothing: Set Sh2 = Nothing: Set myDic = Nothing: Set NewSh = Nothing
 
 End Sub
 
 
 |  |