|
Replaceメソッドは置換Listの数が多くなると、
それに比例して遅くなるので・・・
置換List数が多いほど、Replace関数を使用したほうが
速くなります。
こういうことをする場合には、全てのデータを一度
配列に入れてから処理すると劇的に速くなります。
Sub test()
Dim rngTarget As Range
Dim vntTarget As Variant
Dim vntList As Variant
Dim i As Long, j As Long
'置換リストを配列に格納
vntList = Range(Cells(1, 1), Cells(1, 1).End(xlDown)).Value
Set rngTarget = Range(Cells(1, 6), Cells(65536, 6).End(xlUp))
'置換対象文字列を配列に格納
vntTarget = rngTarget.Value
'置換処理
For i = 1 To UBound(vntTarget)
For j = 1 To UBound(vntList)
vntTarget(i, 1) = Replace$(vntTarget(i, 1), _
vntList(j, 1), vntList(j, 2), 1, -1, 0)
Next j
Next i
'置換した配列を一括出力
rngTarget.Value = vntTarget
Set rngTarget = Nothing
End Sub
完全一致であれば、Replace関数も使わなくてよくなりますので、
更なる高速化が望めます。
|
|