Una es utilizando libreria de Javascript y la otra es 'manual'.
Function encoded(strUrl As String) As String
'Microsoft Script Control as reference
Dim ScriptEngine As ScriptControl
Set ScriptEngine = New ScriptControl
ScriptEngine.Language = "JScript"
ScriptEngine.AddCode "function encode(str) {return encodeURIComponent(str);}"
'Dim encoded As String
encoded = ScriptEngine.Run("encode", strUrl)
Set ScriptEngine = Nothing
End Function
Function fEncode(texto) As String
' Encode URL special characters
texto = Replace(texto, " ", "%20")
texto = Replace(texto, "'", "%27")
texto = Replace(texto, "-", "%2D")
texto = Replace(texto, ",", "%2C")
texto = Replace(texto, "_", "%5F")
texto = Replace(texto, "=", "%3D")
texto = Replace(texto, "+", "%2B")
texto = Replace(texto, "/", "%2F")
texto = Replace(texto, Chr(13), "%20")
texto = Replace(texto, vbCr, "%0D%0A")
texto = Replace(texto, vbLf, "%20")
texto = Replace(texto, "?", "%3F")
fEncode = texto
End Function