「貼付」シートの選択範囲に「置換リスト」シートのA列の値が含まれる場合はB列の値に置換するマクロを作りました。
概ね動くのですが、稀に実行時エラー13で止まってしまいます。
原因と解決策についてアドバイスをいただけましたら幸いです。
なお、エラーが起こるケースは選択セルが多く、かつセル内の文字数が多い場合なような印象を受けています。
デバックでコードの状態を見ると赤字の箇所でエラーになっています。
ーーーー
sub 置換マクロ()
Dim wsIn As Worksheet: Set wsIn = ThisWorkbook.Worksheets("貼付")
Dim wsList As Worksheet: Set wsIn = ThisWorkbook.Worksheets("置換リスト")
Dim rng As Range
Dim i As Long
Dim j As Long
Dim i2 As Long
Dim myAry()
Set rng = Selection
i2 = 2 '「置換リスト」A列開始位置
'選択セルが1つの場合、そのまま置換
If rng.Count = 1 Then
Do
rng = Replace(rng, wsList.Cells(i2, 1).Value,wsList.Cells(i2, 2))
i2 = i2 +1
Loop Until wsList.Cells(i2, 1) = ""
Else
'選択セルが複数の場合は、配列myAryに格納してから置換・セル書き換え(高速化対応)
myAry() = rng
Do
For i = LBound(myAry, 1) To UBound(myAry, 1)
for j = LBound(myAry, 2) To UBound(myAry, 2)
myAry(i, j) = Replace(myAry(i, j), wsList.Cells(i2, 1).Value,wsList.Cells(i2, 2))
Next
Next
i2 = i2 +1
Loop Until wsList.Cells(i2, 1) = ""
rng = myAry()
End If
End Sub