120pt
VBAで
Sub Macro() Dim obj1 As Object Dim obj2 As Object Dim i As Long Dim j As Long i = 1 j = 1 With Worksheets("Sheet1") While .Cells(i, 1).Value <> "" Set obj1 = Worksheets("Sheet2").Range("A:A").Find(.Cells(i, 1).Value) If Not obj1 Is Nothing Then If j = 1 Then Worksheets("Sheet3").Cells(j, 1).Value = .Cells(i, 1).Value j = j + 1 Else Set obj2 = Worksheets("Sheet3").Range("A1:A" & j - 1).Find(.Cells(i, 1).Value) If obj2 Is Nothing Then Worksheets("Sheet3").Cells(j, 1).Value = .Cells(i, 1).Value j = j + 1 End If End If End If i = i + 1 Wend End With End Sub
27pt
sheet3のA列に
=IF(Sheet1!A1=Sheet2!A1,Sheet1!A1,"")
ではダメでしょうか?
的外れだったら無視してください。
ありがとうございまいた。
40pt
上の方と被ってますが・・・
Sub module1()
' 重複検索マクロ
' Sheet1のA1,Sheet2のA1から検索をはじめ、
' 重複したデータはSheet3のA1から上詰めで出力されます。
' 尚、比較対照になるシートはそれぞれ、正順でソート(並び替え)されている必要があります。
' シートは3ページ必要で、シート名は適宜修正して使用してください。
Dim objRngA As Range, objRngB As Range
Dim objRngDest As Range
' Sheet1のセルA1(比較対象)
Set objRngA = Sheets("Sheet1").Range("A1")
' Sheet2のセルA1(比較対象)
Set objRngB = Sheets("Sheet2").Range("A1")
' Sheet3のセルA1(結果)
Set objRngDest = Sheets("Sheet3").Range("A1")
' Sheet1、Sheet2いずれかのセルが空白になるまで続ける
While objRngA.Value <> "" And objRngB.Value <> ""
If objRngA.Value < objRngB.Value Then
' Sheet1の方がSheet2の比較対象より小さい場合
Set objRngA = objRngA.Cells(2)
ElseIf objRngA.Value = objRngB.Value Then
' 重複セル発見
objRngDest.Value = objRngA.Value
Set objRngA = objRngA.Cells(2)
Set objRngB = objRngB.Cells(2)
Set objRngDest = objRngDest.Cells(2)
Else
' Sheet2の方がSheet1の比較対象より小さい場合
Set objRngB = objRngB.Cells(2)
End If
Wend
End Sub
ありがとうございました。
マクロってすごいですね!
ありがとうございました。
理屈はわからないけど解決できました。
助かりました。