|    | 
     ▼PePe さん: 
>kanabunさん…find関数の素晴らしさを体験しました、 
厳密にいうと RangeオブジェクトのFindメソッド です。 
 
ワークシート関数で思い出したのですが、 
Findメソッドの代わりに ワークシート関数のCountIf を使っても 
同じことができますね 
 
  With Bk1.Worksheets("sheet1") 
   LstR1 = .Cells(Rows.Count, 1).End(xlUp).Row 
   Set r1 = .Range("A1:A" & LstR1) 
   LstR2 = Bk2.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row 
   'Bk2シートA列をLoop 
   For Each r2 In Bk2.Sheets("Sheet1").Range("A1:A" & LstR2) 
     v = r2.Value 
     'Bk2シートA列のあるセル値が、Bk1側にあるか調べる 
     If WorksheetFunction.CountIf(r1, v) = 0 Then '◆ ここ 
      '↓無かった時の処理 
       LstR1 = LstR1 + 1 
       .Cells(LstR1, 1).Value = v 
     End If 
   Next r2 
 End With 
 
 | 
     
    
   |