Evet çok değişkenlik bir durum varsa replace ile bayağı sıkıntılı. Hepsini teker teker fonksiyonun içine koymanız gerekir.

Regex kullanımının başka bir örneğini koyuyorum.
function BaslikTemizle(baslik)
Set regexobj = New RegExp
With regexobj 
.IgnoreCase = True
.MultiLine = False
.Global = True
.Pattern = "<[^>]*>" : baslik = .Replace(baslik, " ") 'HTML Tag
.Pattern = "\n" : baslik = .Replace(baslik, " ") 'Enter
.Pattern = "(\t)+" : baslik = .Replace(baslik, " ") 'Tablar
.Pattern = "  +" : baslik = .Replace(baslik, " ") 'Birden fazla boşluk
End With
set regexobj = nothing	
BaslikTemizle = baslik		
end function