VB Script Notes
VB Script Notes
HTML / XHTML
If you want to study these subjects first, find the tutorials on our Home page.
What is VBScript?
VBScript is a scripting language
A scripting language is a lightweight programming language
VBScript is a light version of Microsoft's programming language Visual Basic
VBScript How To
« Previous Next Chapter »
The HTML <script> tag is used to insert a VBScript into an HTML page.
<html>
<body>
<script type="text/vbscript">
document.write("Hello World!")
</script>
</body>
</html>
Try it yourself »
The example below shows how to add HTML tags to the VBScript:
<html>
<body>
<script type="text/vbscript">
document.write("<h1>Hello World!</h1>")
</script>
</body>
</html>
Try it yourself »
Example Explained
To insert a VBScript into an HTML page, we use the <script> tag. Inside the <script> tag we use the type
attribute to define the scripting language.
So, the <script type="text/vbscript"> and </script> tells where the VBScript starts and ends:
<html>
<body>
<script type="text/vbscript">
...
</script>
</body>
</html>
The document.write command is a standard VBScript command for writing output to a page.
By entering the document.write command between the <script> and </script> tags, the browser will
recognize it as a VBScript command and execute the code line. In this case the browser will write Hello
World! to the page:
<html>
<body>
<script type="text/vbscript">
document.write("Hello World!")
</script>
</body>
</html>
How to Handle Simple Browsers
Browsers that do not support scripting, will display VBScript as page content.
To prevent them from doing this, the HTML comment tag should be used to "hide" the VBScript.
Just add an HTML comment tag <!-- before the first VBScript statement, and a --> (end of comment) after
the last VBScript statement, like this:
<html>
<body>
<script type="text/vbscript">
<!--
document.write("Hello World!")
-->
</script>
</body>
</html>
VBScripts can be placed in the body and in the head section of an HTML document.
Scripts in <head>
Put your functions and sub procedures in the head section, this way they are all in one place, and they do
not interfere with page content.
<html>
<head>
<script type="text/vbscript">
function myFunction()
alert("Hello World!")
end function
</script>
</head>
<body onload="myFunction()">
</body>
</html>
Try it yourself »
Scripts in <body>
If you don't want your script to be placed inside a function, and especially if your script should write page
content, it should be placed in the body section.
<html>
<head>
</head>
<body>
<script type="text/vbscript">
document.write("This message is written by VBScript")
</script>
</body>
</html>
Try it yourself »
<html>
<head>
<script type="text/vbscript">
function myFunction()
alert("Hello World!")
end function
</script>
</head>
<body>
<button onclick="myFunction()">Click me</button>
<script type="text/vbscript">
document.write("This message is written by VBScript")
</script>
</body>
</html>
Try it yourself »
Using an External VBScript
If you want to run the same VBScript on several pages, without having to write the same script on every
page, you can write a VBScript in an external file.
To use the external script, point to the .vbs file in the "src" attribute of the <script> tag:
Example
<html>
<head>
<script type="text/vbscript" src="ex.vbs"></script>
</head>
<body>
</body>
</html>
VBScript Variables
« Previous Next Chapter »
Create an array
Arrays are used to store a series of related data items. This example demonstrates how you can make an
array that stores names.
These letters are called variables, and variables can be used to hold values (x=5) or expressions (z=x+y).
VBScript Variables
As with algebra, VBScript variables are used to hold values or expressions.
A variable can have a short name, like x, or a more descriptive name, like carname.
In VBScript, all variables are of type variant, that can store different types of data.
You can declare VBScript variables with the Dim, Public or the Private statement. Like this:
Dim x
Dim carname
Now you have created two variables. The name of the variables are "x" and "carname".
You can also declare variables by using its name in a script. Like this:
carname="Volvo"
Now you have also created a variable. The name of the variable is "carname". However, this method is not a
good practice, because you can misspell the variable name later in your script, and that can cause strange
results when your script is running.
If you misspell for example the "carname" variable to "carnime", the script will automatically create a new
variable called "carnime". To prevent your script from doing this, you can use the Option Explicit statement.
This statement forces you to declare all your variables with the dim, public or private statement.
Put the Option Explicit statement on the top of your script. Like this:
Option Explicit
Dim carname
carname=some value
Assigning Values to Variables
You assign a value to a variable like this:
carname="Volvo"
x=10
The variable name is on the left side of the expression and the value you want to assign to the variable is on
the right. Now the variable "carname" has the value of "Volvo", and the variable "x" has the value of "10".
Lifetime of Variables
How long a variable exists is its lifetime.
When you declare a variable within a procedure, the variable can only be accessed within that procedure.
When the procedure exits, the variable is destroyed. These variables are called local variables. You can have
local variables with the same name in different procedures, because each is recognized only by the
procedure in which it is declared.
If you declare a variable outside a procedure, all the procedures on your page can access it. The lifetime of
these variables starts when they are declared, and ends when the page is closed.
Dim names(2)
The number shown in the parentheses is 2. We start at zero so this array contains 3 elements. This is a
fixed-size array. You assign data to each of the elements of the array like this:
names(0)="Tove"
names(1)="Jani"
names(2)="Stale"
Similarly, the data can be retrieved from any element using the index of the particular array element you
want. Like this:
mother=names(0)
You can have up to 60 dimensions in an array. Multiple dimensions are declared by separating the numbers
in the parentheses with commas. Here we have a two-dimensional array consisting of 5 rows and 7
columns:
Dim table(4,6)
<html>
<body>
<script type="text/vbscript">
Dim x(2,2)
x(0,0)="Volvo"
x(0,1)="BMW"
x(0,2)="Ford"
x(1,0)="Apple"
x(1,1)="Orange"
x(1,2)="Banana"
x(2,0)="Coke"
x(2,1)="Pepsi"
x(2,2)="Sprite"
for i=0 to 2
document.write("<p>")
for j=0 to 2
document.write(x(i,j) & "<br />")
next
document.write("</p>")
next
</script>
</body>
</html>
VBScript Procedures
« Previous Next Chapter »
Sub procedure
Function procedure
Sub mysub()
some statements
End Sub
or
Sub mysub(argument1,argument2)
some statements
End Sub
Sub mysub()
alert("Hello World")
End Sub
Try it yourself »
Function myfunction()
some statements
myfunction=some value
End Function
or
Function myfunction(argument1,argument2)
some statements
myfunction=some value
End Function
function myfunction()
myfunction=Date()
end function
Try it yourself »
<body>
<button onclick="myfunction()">Click me</button>
</body>
Try it yourself »
carname=findname()
Here you call a Function called "findname", the Function returns a value that will be stored in the variable
"carname".
Function myfunction(a,b)
myfunction=a+b
End Function
document.write(myfunction(5,9))
Try it yourself »
The function "myfunction" will return the sum of argument "a" and argument "b". In this case 14.
When you call a procedure you can use the Call statement, like this:
Call MyProc(argument)
MyProc argument
VBScript Conditional Statements
« Previous Next Chapter »
Conditional Statements
Conditional statements are used to perform different actions for different decisions.
If...Then...Else
Use the If...Then...Else statement if you want to
If you want to execute only one statement when a condition is true, you can write the code on one line:
There is no ..Else.. in this syntax. You just tell the code to perform one action if a condition is true (in this
case If i=10).
If you want to execute more than one statement when a condition is true, you must put each statement on
separate lines, and end the statement with the keyword "End If":
If i=10 Then
alert("Hello")
i = i+1
End If
There is no ..Else.. in the example above either. You just tell the code to perform multiple actions if the
condition is true.
If you want to execute a statement if a condition is true and execute another statement if the condition is
not true, you must add the "Else" keyword:
<body onload="greeting()">
</body>
</html>
Try it yourself »
In the example above, the first block of code will be executed if the condition is true, and the other block will
be executed otherwise (if i is greater than 10).
If...Then...ElseIf
You can use the If...Then...ElseIf statement if you want to select one of many blocks of code to execute:
<html>
<body>
<script type="text/vbscript">
Function greeting()
i=hour(time)
If i = 10 Then
document.write("Just started...!")
ElseIf i = 11 then
document.write("Hungry!")
ElseIf i = 12 then
document.write("Ah, lunch-time!")
ElseIf i = 16 then
document.write("Time to go home!")
Else
document.write("Unknown")
End If
End Function
</script>
</head>
<body onload="greeting()">
</body>
</html>
Try it yourself »
Select Case
You can also use the "Select Case" statement if you want to select one of many blocks of code to execute:
<html>
<body>
<script type="text/vbscript">
d=weekday(date)
Select Case d
Case 1
document.write("Sleepy Sunday")
Case 2
document.write("Monday again!")
Case 3
document.write("Just Tuesday!")
Case 4
document.write("Wednesday!")
Case 5
document.write("Thursday...")
Case 6
document.write("Finally Friday!")
Case else
document.write("Super Saturday!!!!")
End Select
</script>
</body>
</html>
VBScript Looping
« Previous Next Chapter »
Looping Statements
Looping statements are used to run the same block of code a specified number of times.
For...Next Loop
Use the For...Next statement to run a block of code a specified number of times.
The For statement specifies the counter variable (i), and its start and end values. The Next statement
increases the counter variable (i) by one.
Example
<html>
<body>
<script type="text/vbscript">
For i = 0 To 5
document.write("The number is " & i & "<br />")
Next
</script>
</body>
</html>
Try it yourself »
With the Step keyword, you can increase or decrease the counter variable by the value you specify.
In the example below, the counter variable (i) is INCREASED by two, each time the loop repeats.
To decrease the counter variable, you must use a negative Step value. You must specify an end value that
is less than the start value.
In the example below, the counter variable (i) is DECREASED by two, each time the loop repeats.
Exit a For...Next
You can exit a For...Next statement with the Exit For keyword.
For i=1 To 10
If i=5 Then Exit For
some code
Next
Example
<html>
<body>
<script type="text/vbscript">
Dim cars(2)
cars(0)="Volvo"
cars(1)="Saab"
cars(2)="BMW"
</body>
</html>
Try it yourself »
Do...Loop
If you don't know how many repetitions you want, use a Do...Loop statement.
The Do...Loop statement repeats a block of code while a condition is true, or until a condition becomes true.
Do While i>10
some code
Loop
If i equals 9, the code inside the loop above will never be executed.
Do
some code
Loop While i>10
The code inside this loop will be executed at least one time, even if i is less than 10.
Do Until i=10
some code
Loop
If i equals 10, the code inside the loop will never be executed.
Do
some code
Loop Until i=10
The code inside this loop will be executed at least one time, even if i is equal to 10.
Exit a Do...Loop
Do Until i=10
i=i-1
If i<10 Then Exit Do
Loop
The code inside this loop will be executed as long as i is different from 10, and as long as i is greater than
10.
VBScript Summary
This tutorial has taught you how to add VBScript to your HTML pages, to make your web site more dynamic
and interactive.
You have learned how to create variables and functions, and how to make different scripts run in response
to different scenarios.
For more information on VBScript, please look at our VBScript examples and our VBScript references.
While scripts in an HTML file are executed on the client (in the browser), scripts in an ASP file are executed
on the server.
With ASP you can dynamically edit, change or add any content of a Web page, respond to data submitted
from HTML forms, access any data or databases and return the results to a browser, customize a Web page
to make it more useful for individual users.
Since ASP files are returned as plain HTML, they can be viewed in any browser.
If you want to learn more about ASP, please visit our ASP tutorial.
VBScript Functions
« Previous Next Chapter »
This page contains all the built-in VBScript functions. The page is divided into following sections:
Function Description
Asc Converts the first letter in a string to ANSI code
CBool Converts an expression to a variant of subtype Boolean
CByte Converts an expression to a variant of subtype Byte
CCur Converts an expression to a variant of subtype Currency
CDate Converts a valid date and time expression to the variant of subtype Date
CDbl Converts an expression to a variant of subtype Double
Chr Converts the specified ANSI code to a character
CInt Converts an expression to a variant of subtype Integer
CLng Converts an expression to a variant of subtype Long
CSng Converts an expression to a variant of subtype Single
CStr Converts an expression to a variant of subtype String
Hex Returns the hexadecimal value of a specified number
Oct Returns the octal value of a specified number
Function Description
FormatCurrency Returns an expression formatted as a currency value
FormatDateTime Returns an expression formatted as a date or time
FormatNumber Returns an expression formatted as a number
FormatPercent Returns an expression formatted as a percentage
Function Description
Abs Returns the absolute value of a specified number
Atn Returns the arctangent of a specified number
Cos Returns the cosine of a specified number (angle)
Exp Returns e raised to a power
Hex Returns the hexadecimal value of a specified number
Int Returns the integer part of a specified number
Fix Returns the integer part of a specified number
Log Returns the natural logarithm of a specified number
Oct Returns the octal value of a specified number
Rnd Returns a random number less than 1 but greater or equal to 0
Sgn Returns an integer that indicates the sign of a specified number
Sin Returns the sine of a specified number (angle)
Sqr Returns the square root of a specified number
Tan Returns the tangent of a specified number (angle)
Function Description
Array Returns a variant containing an array
Filter Returns a zero-based array that contains a subset of a string array based
on a filter criteria
IsArray Returns a Boolean value that indicates whether a specified variable is an
array
Join Returns a string that consists of a number of substrings in an array
LBound Returns the smallest subscript for the indicated dimension of an array
Split Returns a zero-based, one-dimensional array that contains a specified
number of substrings
UBound Returns the largest subscript for the indicated dimension of an array
Function Description
InStr Returns the position of the first occurrence of one string within another.
The search begins at the first character of the string
InStrRev Returns the position of the first occurrence of one string within another.
The search begins at the last character of the string
LCase Converts a specified string to lowercase
Left Returns a specified number of characters from the left side of a string
Len Returns the number of characters in a string
LTrim Removes spaces on the left side of a string
RTrim Removes spaces on the right side of a string
Trim Removes spaces on both the left and the right side of a string
Mid Returns a specified number of characters from a string
Replace Replaces a specified part of a string with another string a specified
number of times
Right Returns a specified number of characters from the right side of a string
Space Returns a string that consists of a specified number of spaces
StrComp Compares two strings and returns a value that represents the result of
the comparison
String Returns a string that contains a repeating character of a specified length
StrReverse Reverses a string
UCase Converts a specified string to uppercase
Function Description
CreateObject Creates an object of a specified type
Eval Evaluates an expression and returns the result
GetLocale Returns the current locale ID
GetObject Returns a reference to an automation object from a file
GetRef Allows you to connect a VBScript procedure to a DHTML event on your
pages
InputBox Displays a dialog box, where the user can write some input and/or click
on a button, and returns the contents
IsEmpty Returns a Boolean value that indicates whether a specified variable has
been initialized or not
IsNull Returns a Boolean value that indicates whether a specified expression
contains no valid data (Null)
IsNumeric Returns a Boolean value that indicates whether a specified expression
can be evaluated as a number
IsObject Returns a Boolean value that indicates whether the specified expression
is an automation object
LoadPicture Returns a picture object. Available only on 32-bit platforms
MsgBox Displays a message box, waits for the user to click a button, and returns
a value that indicates which button the user clicked
RGB Returns a number that represents an RGB color value
Round Rounds a number
ScriptEngine Returns the scripting language in use
ScriptEngineBuildVersion Returns the build version number of the scripting engine in use
ScriptEngineMajorVersion Returns the major version number of the scripting engine in use
ScriptEngineMinorVersion Returns the minor version number of the scripting engine in use
SetLocale Sets the locale ID and returns the previous locale ID
TypeName Returns the subtype of a specified variable
VarType Returns a value that indicates the subtype of a specified variable
VBScript Keywords
« Previous Next Chapter »
VBScript Keywords
Keyword Description
Empty Used to indicate an uninitialized variable value. A variable value is
uninitialized when it is first created and no value is assigned to it, or
when a variable value is explicitly set to empty.
Example:
Dim x 'the variable x is uninitialized!
x="ff" 'the variable x is NOT uninitialized anymore
x=Empty 'the variable x is uninitialized!
Note: If you compare a value to Nothing, you will not get the right
result! Example: If (myObject = Nothing) 'always false!
Null Used to indicate that a variable contains no valid data.
One way to think of Null is that someone has explicitly set the value to
"invalid", unlike Empty where the value is "not set".
CLASSID="CLSID:978C9E23-D4B0-11CE-BF2D-00AA003F40D0">
Note
The Script Wizard found in the Microsoft ActiveX Control Pad can be used to
identify events provided by a control, and to generate script to respond to
these events.
For the most part, you will be focusing on properties and events. An
example of setting properties for a label control is shown in the following
example.
<SCRIPT LANGUAGE="VBScript">
Sub cmdCalculatePay_onClick
Dim HoursWorked
Dim PayRate
Dim TotalPay
lblTotalPay.caption = TotalPay
End Sub
</SCRIPT>