| 
    
     |  | 解決されたようで、もう見ていらっしゃらないかもしれませんが。 
 >Selection.CurrentRegion.Select
 >Selection.End(xlDown).Activate
 >i = ActiveCell.Row
 だと、正しく最終行がとれますね。
 
 >i = ActiveCell.Row + Selection.Rows.Count -1
 は間違ってます。
 失礼しました。m(_ _)m
 
 お詫びに、違う書き方で書いてみます。
 ちょっと良く解らないところがあるので、そこは想像ですが。
 
 Sub 範囲内で置き換え2()
 Dim mr As Range
 Dim i  As Long
 Dim v  As Variant
 Dim c  As Range
 
 v = Cells(2, 3).Resize(14, 2).Value
 Set c = Cells(19, 1).CurrentRegion
 
 For i = 1 To 14
 For Each mr In c
 If mr.Value = v(i, 1) Then mr.Value = v(i, 2)
 Next mr
 Next i
 
 Erase v
 Set c = Nothing
 End Sub
 
 ループカウンタはLong型の方が速いそうです。
 
 |  |