VBScript has a few other important statements to help developers develop an efficient script. The following table lists a set of such important statements. In this chapter, we will discuss each of these statements in detail with examples.
Category | Function Name/Statement Name |
---|---|
Options | Option Explicit |
Script Engine ID | ScriptEngine |
variants | IsArray, IsEmpty, IsNull, IsNumeric, IsObject, TypeName |
Expression | Eval,Execute |
Control Statement | With...End With |
Math Function | Randomize |
Option Explicit forces the developer to declare the variables using Dim statement before they are used in some part of the code.
Option Explicit
If we use Option Explicit and if we don't declare the variables then the interpreter will throw and error.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Option Explicit Dim x,y,z,a x = 10 y = 20 z = fnadd(x,y) a = fnmultiply(x,y) Function fnadd(x,y) fnadd = x+y End Function </script> </body> </html>
ScriptEngine represents the details of the scripting language in use. It is also used in combination with ScriptEngineMajorVersion, ScriptEngineMinor Version, ScriptEngineBuildVersion which gives the major version of the vbscript engine, minor version the vbscript engine, and the build version of vbscript respectively.
ScriptEngine
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim scriptdetails scriptdetails = " Version " & ScriptEngine & " - " 'For getting Major version, use ScriptEngineMajorVersion' scriptdetails = scriptdetails & ScriptEngineMajorVersion & "." 'For getting Minor version, use ScriptEngineMinorVersion' scriptdetails = scriptdetails & ScriptEngineMinorVersion & "." 'For getting Build version, use ScriptEngineBuildVersion' scriptdetails = scriptdetails & ScriptEngineBuildVersion Document.write scriptdetails </script> </body> </html>
Save the file with .html extension upon executing the script in IE , the following result is displayed on the screen.
Version VBScript - 5.8.16996
The Function IsEmpty is used to check whether or not the expression is empty. It returns a Boolean value. IsEmpty returns True if the variable is uninitialized or explicitly set to Empty. Otherwise the expression returns False.
IsEmpty(expression)
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim var, MyCheck MyCheck = IsEmpty(var) Document.write "Line 1 : " & MyCheck & "<br />" var = Null ' Assign Null. MyCheck = IsEmpty(var) Document.write "Line 2 : " & MyCheck & "<br />" var = Empty ' Assign Empty. MyCheck = IsEmpty(var) Document.write "Line 3 : " & MyCheck & "<br />" </script> </body> </html>
Save the file with .html extension upon executing the script in IE, the following result is displayed on the screen.
Line 1 : True Line 2 : False Line 3 : True
The Function IsNull is used to check whether or not the expression has a valid data. It returns a Boolean value. IsNull returns True if the variable is Null otherwise the expression returns False.
IsNull(expression)
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim var, res res = IsNull(var) document.write "Line 1 : " & res & "<br />" var = Null res = IsNull(var) document.write "Line 2 : " & res & "<br />" var = Empty res = IsNull(var) document.write "Line 3 : " & res & "<br />" </script> </body> </html>
Save the file with .html extension upon executing the script in IE, the following result is displayed on the screen.
Line 1 : False Line 2 : True Line 3 : False
The IsObject Function is used to check whether or not the expression has a valid Object. It returns a Boolean value. IsObject returns True if the expression contains an object subtype otherwise the expression returns False.
IsObject(expression)
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim fso,b b = 10 set fso = createobject("Scripting.Filesystemobject") x = isobject(fso) Document.write "Line 1 : " & x & "<br />" y = isobject(b) Document.write "Line 2 : " & y & "<br />" </script> </body> </html>
Save the file with .html extension upon executing the script in IE, the following result is displayed on the screen.
Line 1 : True Line 2 : False
The IsNumeric Function is used to check whether or not the expression has a number subtype. It returns a boolean value. IsObject returns True if the expression contains an number subtype otherwise the expression returns False.
IsNumeric(expression)
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim var, chk var = 20 chk = IsNumeric(var) Document.write "Line 1 : " & chk & "<br />" var = "3.1415935745" chk = IsNumeric(var) Document.write "Line 2 : " & chk & "<br / >" var = "20 Chapter 23.123 VBScript" chk = IsNumeric(var) Document.write "Line 3 : " & chk & "<br / >" </script> </body> </html>
Save the file with .html extension upon executing the script in IE , the following result is displayed on the screen.
Line 1 : True Line 2 : True Line 3 : False
The TypeName Function is used to return the variant subtype information of the variable.
TypeName(varname)
The Typename function can return any of the following values.
Byte − Byte Value
Integer − Integer Value
Long − Long Integer Value
Single − Single-precision floating-point Value
Double − Double-precision floating-point Value
Currency − Currency Value
Decimal − Decimal Value
Date − Date or Time Value
String − Character string Value
Boolean − Boolean Value
Empty − Uninitialized Value
Null − No Valid Data
Object − typename of Object
Nothing − Object variable that doesn't yet refer to an object instance
Error
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim ArrVar(2), vartype NullVar = Null ' Assign Null value. vartype = TypeName(3.1450) Document.write "Line 1 : " & vartype & "<br />" vartype = TypeName(432) Document.write "Line 2 : " & vartype & "<br />" vartype = TypeName("Microsoft") Document.write "Line 3 : " & vartype & "<br />" vartype = TypeName(NullVar) Document.write "Line 4 : " & vartype & "< br />" vartype = TypeName(ArrVar) Document.write "Line 5 : " & vartype & "<br />" </script> </body> </html>
Save the file with .html extension upon executing the script in IE, the following result is displayed on the screen.
Line 1 : Double Line 2 : Integer Line 3 : String Line 4 : Null Line 5 : Variant()
The Eval Function executes an expression and returns the result either as a string or a number.
Eval(expression)
The argument Expression can be a string expression or a number. If you pass to the Eval function a string that doesn't contain a numeric expression or a function name but only a simple text string, a run-time error occurs. For example, Eval("VBScript") results in an error.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Document.write Eval("10 + 10") & "<br />" Document.write Eval("101 = 200") & "<br />" Document.write Eval("5 * 3") & "<br />" </script> </body> </html>
Save the file with .html extension upon executing the script in IE, the following result is displayed on the screen.
20 false 15
The Execute statement accepts argument that is a string expression containing one or more statements for execution.
Execute(expression)
In VBScript, a = b can be interpreted two ways. It can be treated as an assignment statement where the value of x is assigned to y. It can also be interpreted as an expression that tests if a and b have the same value. If they do, result is True; if they are not, result is False. The Execute statement always uses the first interpretation while the Eval statement always uses the second.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim x x = "Global" y = "VBScript" Execute("x = y") msgbox x msgbox y </script> </body> </html>
Save the file with .html extension upon executing the script in IE, the following result is displayed on the screen.
VBScript VBScript
The With statement allows us to perform a series of operation on a specified object without explicitly mentioning the object name over again and again.
With (objectname) statement 1 statement 2 statement 3 ... ... statement n End With
Upon Executing the following script, Winword gets opened and the specified text is entered.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Msg = "Vbscript" & vbCrLf & "Programming" Set objWord = CreateObject("Word.Application") objWord.Visible = True ' Objects methods are accessed without requaliyfying the objects again.' With objWord .Documents.Add .Selection.TypeText Msg .Selection.WholeStory End With </script> </body> </html>
The Randomize statement initializes the random number generator which is helpful for the developers to generate a random number.
Randomize [number]
Upon Executing the following script, Winword gets opened and the specified text is entered.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim MyValue Randomize MyValue = Int((100 * Rnd) + 1) ' Generate random value between 1 and 100. MsgBox MyValue </script> </body> </html>
Save the above script as HTML and upon executing the script in IE, the following output is shown.
42