Вам необходимо передать строки в качестве аргументов
Sub replace(ByVal OldWord As String, ByVal NewVAr As String)
WithActiveDocument
.Content.Find.Forward = True
.Wrap = wdFindStop
.Execute FindText:=OldWord, ReplaceWith:=NewVAr, replace:=wdReplaceAll, MatchCase:=True
End With
End Sub
Поэтому, когда вы вызываете Sub, вы будете использовать один из следующих
replace "YYY", "Myvariable"
replace OldWord:="YYY", NewVAr:="Myvariable"
Call replace ("YYY", "Myvariable")
(все из которых делают то же самоевещь)