| 
    
     |  | ▼たつ さん: 
 かならず親部品が最初に現れている条件であれば
 以下のような感じでどうでしょうか?
 
 Sub test()
 Dim myD As Object, i As Long, tbl
 Set myD = CreateObject("Scripting.Dictionary")
 
 'シート2のA列の部品をすべて削除なら
 '========================================================================
 'tbl = Worksheets("Sheet2").Range("A1").CurrentRegion.Columns("A").Value
 'For i = 1 To UBound(tbl)
 ' myD.Add tbl(i, 1), ""
 'Next i
 '========================================================================
 
 'BBBだけなら
 '========================================================================
 myD.Add "BBB", ""
 '========================================================================
 
 With Worksheets("Sheet1")
 tbl = .Range("A1").CurrentRegion.Columns("A:B").Value
 For i = 1 To UBound(tbl)
 If myD.Exists(tbl(i, 1)) Then myD.Add tbl(i, 2), ""
 Next i
 For i = UBound(tbl) To 1 Step -1
 If myD.Exists(tbl(i, 1)) Then .Rows(i).Delete
 Next i
 End With
 End Sub
 
 |  |