Created November 2006. Posted August 2016.

Call the native version of a VBScript object

Let's say you've redefined a VBScript item, for example a function like Left. How would you call the original version of that function if you needed to?

To be honest, I wrote this so long ago I can't remember why I wrote it. But here it is.

Option Explicit

' This redefines the "left" function 
Function Left(mystring,mynumber) 
        Left = Right(mystring,mynumber) 
End Function

Dim sc, cmd 
' This code is the way to get to the "real" old version 
set sc = CreateObject("MSScriptControl.ScriptControl")
' set the language 
sc.Language = "VBScript" 
' what command do you want to call? 
cmd = "Left(""hello"",1)"

Response.Write "<hr>" 
Response.Write Eval(cmd) 
Response.Write "<hr>" 
Response.Write Left("hello", 1) 
Response.Write "<hr>" 
' here we call the one that produces the right result 
Response.Write sc.Eval(cmd)
Response.Write "<hr>"