0 ratings0% found this document useful (0 votes) 179 views52 pagesVBScript Basics
Very good VB Script tutorial for using HP UFT
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here.
Available Formats
Download as PDF or read online on Scribd
Chapter 03: Scripting Quicktest Professional Page 1
VBScRIPT— THE Basic
WHAT ISA VARIABLE
‘VARIABLES NAMING RESTRICTIONS
How Do CREATE A VARIABLE”
DECLARATION STATEMENTS AND HIGHILIGTS.
Dim Statement
Overriding Standard Variable Naming Conventions
Declaring Vaviables Explicit and Implicit
Option Explicit Statement
WORKING WITHARRAYS sn
4
4
SCALAR VARIABLES AND ARRAY VARIABLES 6
CREATINGARRAYS, 6
Fixed Length Arrays 6
Dynamic Arrays 6
Resizing a dynamic array without Preserve... 7
Resizing a dynamic array with Preserve 7
Array Iterations: 8
VBSCRIPT CONSTANTS...0000
‘WORKING WITH CONSTANTS
DECLARING CONSTANTS. 9
VBSCRIPT PREDEFINED CONSTANTS,
THESCOPE AND LIFETIME OF A VARIABLE.
Pravati STATEMENT
PUpiic STATEMENT
VBScRIPT OPERATORS
WORKING WITHOPERATORS,
ARITHMETIC OPERATORS.
Addition (+)
Subtraction (-)
Multiplication (*)
Division () and Integer Division ()
Exponentiation (°)
Modulus Anthmetic (Mod).
Unary Negation (-)
String Coneatenation (&)(+)
COMPARISON OPERATORS,
Equality (=)
Incqulity (<>)
Less Than (=) and Greater Than (>)
Less than or equal (<=), greater than or equal to =)
Object Equivalence (Is)
LOGICAL OPERATORS.
Logical Negation (Not)
Logical Conjunction (And).
Logical Disjunction (Or)
Logical Exclusion (Xor)
-al Equivalence (Eqv)
Logical Implication (Imp).
Frow Controt so
CONTROLLING THE FLOW OF WBSCRIP! CODE
danival96a@ hotmail.com VBScript Basics Page 1 of 52Chapter 03 ripting Quicktest Professional Page 2
Wary ConTRoL THF Low 0 CODE” 2
USING CONTRO! STRUCTURES TOMAKE DECISIONS
Making Decisions It. Then... Else
Using For. Next Statement
Using For Each, . Next Statement
Using Do... Loops Statement
Using While, . Wend Statement
PUTTING ALL TOGETHER
SUBROUTINES AND FUNCTION PROCEDURES.
WHAT ARE FUNCTIONS?
SUB PROCEDURES.
FUNCTION PROCEDURES.
DECLARING SUBROUTINES! FUNCTIONS.
CALLING A SUBROUTINE
CALL STATEMEN’
CALLING A FUNCTION
EXITING A SUBROUTINE/ FUNCTION
PASSING ARGUMENTS INTO PROCEDURES
WHY ARE PROCEDURES USEFUL”
Enit Statement.
CODING CONVENTIONS,
CONSTANT NAMING CONVENTIONS.
VARIABLE NAMING CONVENTIONS,
DESCRIPTIVE VARIABLE AND PROCEDURE NAMES,
OBECT NAMING CONVENTIONS
Cobi COMMENTING CONVENTIONS
FUNCTIONS AND SUIBSTANDARDS
Procedure Header
THE QUICKTEST EDITOR OP TIONS
Fonts and Colors.
General
Cobb INDENTATION
QUICKTEST REUSABLE AC TIONHEADER,
CREATING ANACTION TEMPLATE
VBScript - The Basics
When users interact with computers, they usually get to some point where the
computer asks them for information. That information is stored or manipulated by
the computer in some way. Suppose, for example, that you want to keep a record
of the number of times the user has clicked the button. In that case, you would
want to store a value in memory. In any case, you need a “container” in which to
store information. Programmers commonly call these containers variables.
danival96a@ hotmail.com VBScript Basics Page 2 of 52Chapter 03
ipting Quicktest Professional Page 3
What is a variable?
A variable is a virtual container in the computer's memory or convenient
placeholder that refers to a computer memory location where you can store
program information that may change during the time your script is running.
Where the variable is stored in computer memory is unimportant. What is
important is that you only have to refer to a varieble by name to see or change its,
value. In VBScript, variables are always of one fundamental data type, Variant.
A computer program can store information in a variable and then access that
information later by referring to the variable’s names
Variables Naming Restrictions
Variable names follow the standard rules for naming anything in VBScript. &
variable name
a Must begin with an alphabetic character,
Cannot contain an embedded period.
Must not exceed 255 characters.
Must be unique in the scope in which it is declared,
Make sure you never create variables that have the same name as keywords
already used by VBScript. These keywords are called reserved words and
include terms such as Date, Minute, Second, Time, and so on.
How Do I Create a Variable?
When you create a variable, you have to give it a name. That way, when you need
to find out what's contained in the variable, you use its name to let the computer
know which variable you are referring to. You have two ways to create a variable
The first way, called the explicit method, is where you use the Dim keyword to tell
VBScript you are about to create a variable. You then follow this keyword with the
name of the variable. If, for example, you went to create a variable called
Quantity, you would enter
DimnQuentity
And the variable will then exist
Declaration Statements and Highiligts
Dim Statement
Description
The Dim statement declares and allocates storage space in memory for
variables. The Dim statement is used either at the start of a procedure or the
start of a global script block. In the first case, the variable declared using Dim
is local to the procedure. In the second, it's available throughout the module.
Dani Vainstein
danival96a@ hotmail.com
UBScript BasisChapter 03 Scripting Quickte:
Professional Page 4
Syntax
Arguments
Name of the variable; follows standard variable naming conventions.
An array and optionally specifies the number and extent of array
subcripts | dimensions up to 60 multiple dimensions may be declered.
Notes
E When variables are first initialized with the Dim statement, they have @
value of Empty. In addition, if'a variable has been initialized but not
assigned a value, the following expressions will both evaluate to True:
IfvVar = 0 Then
Ifwar = "Then
Overriding Standard Variable Naming Conventions
You can override standard variable naming conventions by placing your variable
name in brackets. This allows you to use reserved words or illegal characters in
variable names. For example
Dim [Option Explicit]
[option Explicit] = 6
Msgbox [Option Explicit]
In a common usage, is not recommended to use this syntax. However, is possible.
Those overriding naming convention are useful for user custom Classes.
For more information about classes, in the advanced topic of VBScript.
Declaring Variables Explicit and Implicit
You declare variables explicitly in your script using the Dim statement, the
Public statement, and the Private statement,
Dim nDegreesrahrenheit ]
You declare variables explicitly in your script using the Dim statement, the
Public statement, and the Private statements
Din nereesanvemet |
You declare multiple variables by separating each variable name with a comma.
Di
Top, nBottom, nLeft, nRight
You can also declare a variable implicitly by simply using its name in your script.
That is not generally a good practice because you could misspell the variable
name in ane or more places, causing unexpected results when your script is run.
For that reason, the Option Explicit statement is available to require explicit
declaration of all variables. The Option Explicit statement should be the first
danival96a@ hotmail.com VBScript Basics Page 4Professional Page 5
Chapter 03 Scripting Quickte:
statement in your script.
For that reason, and for cading standards proposes, it is recommended to declare
variables explicitly, and force other programmers the same by adding the Option
statement in the head of any action, reusable action and vbs files.
Option Explicit Statement
Forces explicit declaration of all variables in a script.
If used, the Option Explicit statement must appear in a script before any other
statements. When you use the Option Explicit statement, you must explicitly
declare all variables using the Dim, Private, Public, or ReDim statements. If you
attempt to use an undeclared variable name, an error occurs like in Figure 1
ca
Q ieee
Dest
to avoid incorrectly typing the name of an existing variable or
to avoid confusion in code where the scope of the variable is not clear.
The following example illustrates use of the Option Explicit statement
Working with Arrays
So far you've learned what a variable is, how to create one, and what you can
store inside one, @ variable containing 2 single value is a scalar variable. You might
be wondering if there is some easy way to group variables together in a set.
you can create a variable that can contain a series of values. This is called an array
variable. Array variables and scalar variables are declared in the same way, except
that the declaration of an array variable uses parentheses ( ) following the variable
name. Arrays are useful when you're storing sets of similar data because they
often make it easier to manipulate the data together. If you wanted to manipulate
a list of ten coordinates, you would have to execute ten cifferent statements to
handle each one. Besides, how can you be sure you have ten? What if you have
only six at the moment? How can your code handle this kind of situation where
you really don't know ahead of time how many pieces of information you have?
Here is where the array comes to the rescue!
Dani Vainstein
danival96a@ hotmail.com
UBScript BasisChapter 03 Scripting Quickte:
Professional Page 6
Scalar Variables and Array Variables
The beauty of an array is that it enables you to store and use a series of data
using one variable name and an index to distinguish the individual items. By using
an index, you can often make your code simpler and more efficient so that it's
easier for you to put a script together and change it later. With VBScript, the
elements inside your array can hold any kind of data. The elements don't have to
be all integers or all strings, for example. The array can hold a combination of data
types
Creating Arrays
You create arrays using the same keyword you use when creating variables-the
Dim keyword. An array created with the Dim keyword exists as long as the
procedure does and is destroyed once the procedure ends. If you create the array
in the main script, outside the procedure, the values will persist as long as the
page is loaded
You can create two types of arrays using VBScript: fixed arrays and dynamic
arrays. Fixed arrays have a specific number of elements in them, whereas dynamic
arrays can vary in the number of elements depending on how many are stored in
the array. Both types of arrays are useful, and both have advantages and
disadvantages
Fixed Length Arrays
In the following example, a single dimension array containing 11 elements is
declared
Dim arrArray 10)
Although the number shown in the parentheses is 10, all arrays in VBScript are
zero-based, so this array actually contains 11 elements.
In a zero based array, the number of array elements is always the number shown
in parentheses plus one
This kind of array is called a fixed-size array
Dynamic Arrays
The second type of array you can create is the dynamic array. The benefit of a
dynamic array is that if you don't know how large the array will be when you write
the cade, you can create code that sets or changes the size while the VBScript
code is running. A dynamic array is created in the same way as a fixed array, but
you don't put any bounds in the declaration, As a result, your statement becomes
Dim arclianes
Eventually, you need to tell VBScript how many elements the array will contain.
You can do this with the ReDim function. ReDim tells VBScript to "re-dimension’
the array to however many elements you specify. ReDim takes dimensions the
same way Dim can. The syntax is,
danival96a@ hotmail.com VBScript Basics Page 6Chapter 03 Scripting Quickte:
Professional Page
Rabim as
celncount — 1)
So, if you enter
Rabin A
ehanes (9)
You will create an array that has room to store ten elements. This way, you can
set the size of the array while the code is running rather than when you write the
code. This can be useful when the user gets to decide how many names he will
enter.
Resizing a dynamic array without Preserve.
To use a dynamic array, you must subsequently use ReDim to determine the
number of dimensions and the size of each dimensions
Dim &
ReDim arsi
Redim
Declares dynamic-array variables, and allocates or reallocates storage space at
procedure level
The ReDim statement is used to size or resize a dynamic array that has already
been formally declared using a Private, Public, or Dim statement with empty
parentheses (without dimension subscripts). You can use the ReDim statement
repeatedly to change the number of elements and dimensions in an array
Resizing a dynamic array with Preserve
The Preserve keyword is very important when using ReDim. Suppose, for
example, that you create a dynamic array, specifying its storage space by using
ReDim, fill it with data, and then later decice to make it larger so you can fill it
with more information without losing your original data
In the following example, ReDim sets the initial size of the dynamic array to 25. &
subsequent ReDim statement resizes the array to 30, but uses the Preserve
keyword to preserve the contents of the array as the resizing takes place
ReDim MyArra
ReDin Preserve *
There is no limit to the number of times you can resize @ dynamic array, although
if you make an array smaller, you lose the data in the eliminated elements
Figure 3 describes the memory allocations, when using arrays.
Dam arr iS)
the system allocates 5 cells in the memory to store the array. This type of
declaration is static; the array size cannot be changed.
Dani Vainstein
danival958% hotmac.com
UBScript Basis PageChapter 03 Scripting Quickte:
Professional Page 8
cs
Q Poors
Figure 2 - Resizing static arrays
Resize a dynamic array, every time you resize an array without using the keyword
Preserve, the system allocates a new place in the memory with the required size,
and the last information will be lost.
Using the keyword preserve, the size of the array will be extended, and the
information will not be lost
‘igure 3 - Memory diagram
Array Iterations
1 You can iterate an array using the For...Next statement. The loop is based on
the array index
You can iterate an array using the For Each...Next statement.
More information about loops in Flow Control
VBScript Constants
Sometimes in writing code, you will want to refer to values that never changes The
values for True and False, for example, are always -1 and 0, respectively. Values
that never change usually have some special meaning, such as defining True and
False, These values that never change are called constants, The constants True
and False are sometimes referred to as implicit constants because you do not
nead to do anything to reference their constant names. They are immediately
available in any code you write.
Working with constants
A constant is a variable within a program that never changes in value. Users can
Dani Vainstein n 2
danival96a@ hotmail.com VBScript Basics Page §Chapter 03
ipting Quicktest Professional Page &
create their own constants by initializing variables accordingly and then not
changing their value. VBScript defines the special True and False constants, as
well
When you create the simulated constant, name the constant with uppercase letters
if the constant represents a value unique to your program. If the canstant is a
special value expected by VBScript, prefix the constant name with the letters vb.
This naming convention is not required, but it will help you distinguish the
constant from all the other variables.
See Constant Naming Conventions on page 45
Declaring constants
Constants perform a similar function to variables, in that they are a symbolic
replacement for an item of data in memory. The difference is that a constant
keeps the same value throughout its lifetime
Constants perform a similar function to variables, in that they are a symbolic
replacement for an item of data in memory. The difference is that a constant
keeps the same value throughout its lifetime
Values are assigned to constants using the same method used for variables, and
can contain the same range of data subtypes. In most respects, therefore, a
constant is the same as a variable. In fact, it could be described as a variable
whose value doesn't vary! But because confusion can arise about whether you are
dealing with a constant or a variable within the script, it is safest to use a different
naming convention for constants. The accepted method of denoting a constant is
to use all capitals for the name. In this case, the use of underscores improves their
readability and is highly recommended.
You create user-defined constants in VBScript using the Const statement. Using
the Conststatement, you can create string or numeric constants with meaningful
names and assign them literal values, For example:
Const cIMz0uT = 5
Const nu=_pars
Const v_sTame
You may want to adopt a naming scheme to differentiate constants from variables.
This will prevent you from trying to reassign constant values while your script is
running. For example, you might want to use a "vb" or "can" prefix on your
constant names, or you might name your constants in all capital letters.
Differentiating constants from variables eliminates confusion as you develop more
complex scripts.
Remark
Like the constant declaration in VB, Const in VBSeript cannot be used to assign
non-constant values or the values returned by VBScript functions. This means
that a statement like the following:
LOGINS LEN = Len(itun) ¢ 7
Is also invalid, since it attempts to assign the value of a variable to a constant. It
also means that a statement like:
Dani Vainstein
danival96a@ hotmail.com
UBScript Basis Page 9Chapter 0
ipting Quicktest Professional Page 10
ONG_TW
1s also invalid, since it relies on the value retumed by the VBScript Len function
Finally, unlike VB or VBA, you are not allowed to use any value which includes an
operator in defining a constant. For example, the following declaration, which is
valid in VB, generates a syntax error in VBSeri
WETS ad
Is also invalid, since it relies on the value retumed by the VBScript Len function
Finally, unlike VB or VBA, you are not allowed to use any value which includes an
operator in defining a constant. For example, the following declaration, which is
valid in VB, generates a syntax error in VBScript:
Remark
Also is possible to declare non decimal values for Constants and variables specially
hexadecimal values, that are so used in programming languages, like
= HO:
Const 1 NENA
‘The statement is legal in VBScript, also QuickTest, at run-time will transfer the
value to 767. but there is a syntax checking bug in QuickTest that will display the
follow message:
Sima
ia a
[cab RE CONST Se
Figure 4 - QuickTest Syntax Error bug
VBScript pre-defined constants
A number of useful constants you can use in your code are built into VBScript.
Constants provide a convenient way to use specific values without actually having
to remember the value itself. Using constants also makes your code more
maintainable should the value of any constant ever change. Because these
constants are already defined in VBScript, you don't need to explicitly declare
them in your code, Simply use them in place of the values they represent.
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 10 of 5:Chapter 0 Scripting
2uicktest Professional Page 11
Here are the various categories of constants provided in VBScript and a brief
description of each:
1 Color Constants - Defines eight basic colors that can be used in scripting.
Date and Time Constants - Defines date and time constants used by various
date and time functions.
Date Format Constants - Defines constants used to format dates and times.
a Miscellaneous Constants - Defines constants that don't conveniently fit into any
other category.
MsgBox Constants - Defines constants used in the MsgBox function to describe
button visibility, labeling, behavior, and return values.
String Constants - Defines a variety of non-printable characters used in string
manipulation
@ Tristate Constants - Defines constants used with functions that format
numbers
1 VarType Constants - Defines the various Variant subtypes.
Note
A complete listing of the constant values shown above can be found in VBScript
Constants topic, on the QuickTest Professional Help.
More information about VBScript can be found in Error! Reference source not
found,
The Scope and Lifetime of a Variable
A variable’s scope is determined by where you declare it. When you declare a
variable within a procedure, only code within that procedure can access or change
the value of that variable. It has local scope and is a procedure-level variable. If
you declare a variable outside a procedure, you make it recognizable to all the
procedures in your script. This is a script-level variable, and it has script-level
scope
The lifetime of a variable depends on how long it exists. The lifetime of a script
level variable extends from the time it is declared until the time the script is
finished running. At procedure level, @ variable exists only as long as you are in
the procedure. When the procedure exits, the variable is destroyed. Local variables
are ideal as temporary storage space when a procedure is executing. You can have
local variables of the same name in several different procedures because each is
recognized only by the procedure in which it is declared,
Private Statement
Description
‘The Private statement deciares private variables and allocates storage space
Declares, in a Class block, 2 private variable,
Syntax
Dani Vainstein
danival958% hotmac.com VBScript Basics Page 11 of 52Chapter 03 Scripting Quicktest Prafessional Page 12
Arguments
varname Name of the variable; follows standard variable naming conventions.
subcrpts | An array and optionally specifies the number and extent of array
subcripfs | dimensions up to 60 multiple dimensions may be declared.
Notes
A Private variable’s visibility is limited to the script in which it's created for
global variables and to the class in which it is declared for class-level
variables. Elsewhere, the Private keyword generates an error
E varname follows standard VB naming conventions. It must begin with an
alphabetic character, can't contain embedded periacs or spaces, can't be
the same as a VBScript reserved word, must be shorter than 255
characters, and must be unique within its scope.
You can override standard variable naming conventions by placing your
variable name in brackets. This allows you to use reserved words or illegal
characters in variable names. For example:
Private [me]
Private [1Var]
Private (2-Var]
Private [Left]
E Using the subscripts argument, you can declare up to 60 multiple
dimensions for the arrays
E If the subscripts argument isn’t used (i.2., the variable name is followed by
‘empty parentheses), the array is declared dynamic. You can change bath
the number of dimensions and the number of elements of a dynamic array
using the ReDim statement.
In QuickTest, the Public/Private Scopes are ignored. Any variable you
declare inside a reusable action will remain Private.
Tips
B All variables created at procedure level (that is, in code within a Sub...End
Sub, Function...End Function, or Property...End Property construct are
local by default. That is, they don't have scope outside the procedure in
which they are created. The use of the Private keyword in these cases
generates a runtime error.
You cannot change the dimensions of arrays that were defined to be
dynamic arrays while preserving their original data.
E It's good practice to always use Option Explicit at the beginning of a
module to prevent misnamed variables from causing hard-to-find errors.
Public Statement
Description
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 12 of 5Chapter 03 Scripting
Duicktest Professional Page 13.
‘The Public statement declares public variables and allocates storage space.
Declares, in a Class block, a private variable.
Syntax
Arguments
varname Name of the variable; follows standard variable naming conventions.
‘An array and optionally specifies the number and extent of array
subcripts dimensions up to 60 multiple dimensions may be deciared.
Notes
E The behavior of a Public variable depends on where it’s declared, as the
following table shows
‘Any procedure, Function or Property | Illegal; generates a syntax error; use the Dim
statement statement instead
Global code (in external vbs file) | Variable is available throughout the script,
Variable is available throughout the Reusable
action only (Private).
Variable is available as a property of the class to
all code within the script,
Global code (in a reusable action )
Class block declarations section
varname follows standard VB naming conventions. It must begin with an
alphabetic character, can't contain embedded periods or spaces, can't be
the same as a VBScript reserved word, must be shorter than 255
characters, and must be unique within its scope.
You can override standard variable naming conventions by placing your
variable name in brackets. This allows you to use reserved words or illegal
characters in variable names. For example
Public [me]
Public [1Var]
Public (2-Var]
Public [Left]
E Using the subscripts argument, you can declare up to 60 multiple
dimensions for the array.
] If the subscripts argument isn’t used (i.e., the variable name is followed by
‘empty parentheses), the array is declared dynamic. You can change bath
the number of dimensions and the number of elements of a dynamic array
using the ReDim statement.
E In QuickTest, the Public/Private Scopes are ignored. Any variable you
declare inside a reusable action will remain Private.
Tips
Dani Vainstein y
danival958% hotmac.com VBScript Basics
13 of 52Chapter 0
ipting Quicktest Professional Page 14
Instead of declaring a variable as Public within a class construct, you
E should create Property Let and Property Get procedures that assign and
retrieve the value of a private variable, respectively.
You cannot change the dimensions of arrays that were defined to be
dynamic arrays while preserving their original data.
It’s good practice to always use Option Explicit at the beginning of a
‘module to prevent misnamed variables from causing hard-to-find errors
E To use a global variable, which is not recommended, you can use a Public
MyVar statement on an external vbs file
To use global variables in your testing suite, use the Environment object,
or/and the global datasheet or a global dictionary pre-defined in the
repository. For more information see:
with Actions >
Test Professional User's Guide > Creating Tests or Components > Workin
Shar the Dictionary Object
VBScript Operators
B Arithmetic Operators
Operators used to perform mathematical calculations,
B Assignment Operator
Operator used to assign @ value to a property or variable.
1 Comparison Operators
Operators used to perform comparisons.
1 Concatenation Operators
Operators used to combine strings.
B Logical Operators
Operators used to perform logical operations.
Working with Operators
As you begin to write VBScript code, you will use operators so much that their
use will become natural to you. In this section, you will learn about each of the
operators available to you in VBScript, as well as how you might go about using
them
When several operations occur in an expression, each part is evaluated and
resolved in a predetermined order called operator precedence. You can use
parentheses to override the order of precedence and force some parts of an
expression to be evaluated before others. Operations within parentheses are
always performed before those outside. Within parentheses, however, standard
‘operator precedence is maintained
When expressions contain operators from more than one category, arithmetic
operators are evaluated first, comparison operators are evaluated next, and logical
operators are evaluated last. Comparison operators all have equal precedence;
that is, they are evaluated in the left-to-right order in which they appear.
Arithmetic and logical operators are evaluated in the following order of
precedence.
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 14 of 5Chapter 0
ipting Quicktest Professional Page 15,
Arithmetic Operators
The first major class of operators is arithmetic operators. Arithmetic operators
enable you to perform simple arithmetic on one ar more variables. Most of these
operators will be familiar to you because you have been exposed to them in
everyday life. Few peaple will be surprised to find, for example, that the +
operator performs addition! Some operators, however, might be new to you. In
any case, you need to understand how to apply these operators to variables and
literals in VBScript code.
Operators fit into three separate categories: arithmetic operators, comparison
operators, and logical operators. Each of these categories has a special use in a
VBScript program. Operators are executed in a specific order when they are
combined. Programmers must take this order into account when they write code
Addition +
‘Subtraction =
Multiplication *
Division Z
Integer Division \
Exponentiation a
Modulus arithmetic | Mod
Unary negation -
String concatenation [&
Table 1 - Arithmetic operators
Addition (+)
The first arithmetic operator is the addition operator. You already used this
operator yesterday and probably intuitively understood its purpose because it is so
commonly used and easy to understand. The addition operator is used to add
values, whether they are stored in variables, constants, or literal numbers. You
also use the + operator to concatenate strings.
Subtraction (-)
This operator works the same way the addition operator does except that it
subtracts one or more numbers rather than add them. Otherwise, the syntax is the
same.
Multiplication (*)
Addition and subtraction are important, but you also need to be able to multiply
values together. In most computer languages, the » symbol is used to indicate
multiplication, not the x symbol
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 15 of 5Chapter 03
2uicktest Professional Page 16
Division (/) and Integer Division (\)
The division operator is the last of the four commonly used arithmetic operators
Among the comman arithmetic operators, division is the most complicated
arithmetic operation a computer performs
VBScript has two types of division operators. The first operator handles numbers
with decimal points. Usually referred to as the floating-point division operator, it's
represented by the / symbol in code listings
The floating-point division operator is designed to divide values with decimal
points, but it can also divide numbers without decimals.
Exponentiation (*)
Raises a number to the pow
of an exponent.
Modulus Arithmetic (Mod)
The Mod operator is another powerful arithmetic operator. Essentially, the Mod
operator returns the remainder after dividing one number into anather.
Unary Negation (-)
The last of the arithmetic operators is the negation operator. Simply put, this
operator changes the sign of a value contained in a variable or creates a negative
number.
String Concatenation (&)(+)
Forces string concatenation of two expressions.
You use the string concatenation operator to merge two strings together.
Comparison Operators
The first set of operators VBScript provides are arithmetic operators. This section
discusses the second type: comparison operators. As the name implies, you use
comparison operators to compare one or more variables, numbers, constants, or a
combination of the three. VBScript has many different types of comparison
operators, and each check for a different comparison condition
Equality
Inequality =
Less than
Greater than >
Less than or equal to =
Greater than or equal to
Dani Vainstein
danival958% hotmac.com VBScript Basics Page 16 of 52Chapter 0
ipting Quicktest Professional Page 17
Object equivalence Is
Table 2 - Comparison Operators
Equality (=)
You use the equality operator to see if a variable, constant, or number is equal to
another, It's common to mistake the equality operator for the assignment
‘operator, which is also represented by an equal sign. You use the assignment
operator to set a variable equal to another variable, number, string, constant, or
other data entity. For comparing strings use the StrComp function.
Inequality (<>)
Another important comparison operator is the inequality operator. You use this
operator to test whether a variable is not equal to another variable or some data
element. For comparing strings use the StrComp function.
Less Than (<) and Greater Than (>)
You might have a condition where you don’t care whether a variable is equal to
another, but you do want to know whether it is greater than or less than another
variable, number, or constant. In such a case, you need the greater-than and less
than operators. For comparing strings use the StrComp function.
Less than or equal (<=), greater than or equal to (>=)
Sometimes, you also might want to see whether a variable is greater than or equal
to some other variable, constant, or number. Perhaps you want to know if it is less
than or equal to the entity. Then, you can combine operators to use the less-than-
or-equal and greater-than-or-equal operators, <= and >.
For comparing strings use the StrComp function.
Object Equivalence (Is)
The last comparison operator is designed for objects.
This operator does not compare one object to another, nor does it compare values.
This special operator simply checks to see if the two object references in the
expression refer to the same object. Suppose, for example, you have assigned a
command button in your script. You have another variable, myObject that is set to
reference different objects at different paints in your program. Assume that a
statement has been carried out that assigns the variable myObject to reference
this button
Logical Operators
The last category of operators in VBScript is logical operators. The logical
operators might require a more significant amount of understanding to appreciate.
In some cases, the way you use logical operators seems to run counter to your
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 17 of 5Chapter 0 Scripting
Duicktest Professional Page 18,
intuitive thinking. If you've ever taken a course in logic, you have first-hand
experience with this.
Because logical operators are such an important part of VBScript in particular,
and every programming language in general, it's important to gain a good
understanding, starting with the basics, so that you can use them effectively
Logical negal Not
Logical conjunction And
Logical disjunction Or
Logical exclusion Xor
Logical equivalence Eq
Logical implication Imp
Table 3 - Logical Operators
Logical Negation (Not)
The operator performs logical negation on an expression. In addition, the Not
operator inverts the bit values of any variable and sets the corresponding bit,
This operator has the following results
a 1
1 a
Table 4 - Logical Negation
Logical Conjunction (And)
The operator performs a logical conjunction on two expressions.
In order to obtain True in the result variable, bath expression! and expression2
must be True. You often use this operator to make sure two or more conditions
are true before performing same action.
Dani Vainstein
denival 968ahotmadl.com VBScript Basics Page 18 of 52Chapter 0 Scripting
Duicktest Professional Page 19
Table 5 - Logical conjuc
Logical Disjunction (Or)
The operator performs a logical disjunction on two expressions
If either or both expressions evaluate to True, result is True,
The Or operator also performs a bitwise comparison of identically positioned bits in
two numeric expressions and sets the corresponding bit in result.
0
oO
1
1
Table 6 - Logical Disjunction
Logical Exclusion (Xor)
The operator performs a logical exclusion on two expressions
The exclusion operator is another in the family of logical operators that you can
use to make decisions based on the contents of ane or more expressions. It checks
whether ane and only one condition is exclusively True.
Dani Vainstein
denival 968ahotmadl.com VBScript Basics Page 19 of 52Chapter 0 Scripting
Duicktest Professional Page 20
Z Hi °
Table 7 - Logical exclusion
Logical Equivalence (Eqv)
The operator performs a logical equivalence on two expressions
The equivalence operator checks whether two expressions are bitwise equivalent
to each other.
If either expression is Null, resuit is also Null, When neither expression is Null
Table 8 - Logical equivalence
Logical Implication (Imp)
The operator performs a logical implication on two expressions
Table 9 - Logical Implication
Like all the logical operators covered here, the Imp and Eqy comparisons are
performed on a bit-by-bit basis and the results are set on a bit-by-bit basis. For
the other operators, the functionality it provides and the expected results are
intuitively obvious. For Imp and Eq, the results are less intuitive. Of course, any
Dani Vainstein
danival
VBScript Basies Page 20 of 52
fi hotma.comChapter 0 ipting Quicktest Professional Page 21
expression is ultimately represented in bits on a computer, and to understand
these operators, you must think in terms of these bits
Flow Control
Controlling the Flow of VBScript Code
Both variables and operators are fundamental building blocks you need to
understand to write useful code, This subject is very important when you want
your programs to make on the spot decisions or execute differently based an what
the user wants to do.
You will learn all the VBScript control structures and see several examples of how
they can be applied. You will also learn which structures are more applicable and
more useful under which situations. You'll learn not anly how to contral the flow of
code, but also how best to do so
Once you've learned how to contral the flow of code within a procedure, you'll see
how’ you can control the flow of code within the entire application.
Why Control the Flow of Code?
Before you begin learning how to control the flow of your code, you might be
wondering why you should do so in the first place. What is the “flow of code
anyway? To get this answer, you need to step back for a moment and take a look
at the big picture:
Stripped of all the complex software languages and the big technical words used to
describe application development, a computer program is really quite simple. A
program is simply a list of instructions that a computer executes. Although we
tend to give computers a lot of credit, a computers actually quite stupid. It can
only do exactly what you tell it to do; it has only @ limited subset of the capabilities
of the human mind without many important traits, such as the ability to draw
inferences, use intuition, or use emotion to help make decisions
When a computer executes a list of instructions, it executes them one at a time in
the order it is told. Depending on the type of computer and the language of the
program, some computers can jump around a list of instructions if told to do so
At times, you might want to execute the same instructions over again. Suppose,
for instance, you have to ask the user for a set of data again because he didn’t
enter the data correctly the first time. Other times, you might need to make a
decision in your program to execute one line of code under ane condition and
another line of code in some other condition,
In both cases, depending on the user, your code can execute in a different order
each time. As you can see, it is very important, ifnat fundamental, that you have
this capability in your programs. That's why knowing how to control the flow of
your code is important
Dani Vainstein
hotmail.com
VBScript Basies Page 21 of 5
danivalChapter 03 Scripting Quicktest Professional Page 22
Using Control Structures to Make Decisions
VBScript gives you a variety of ways to direct the flow of your code. The
mechanisms used to accomplish this in VBScript are called control structures,
They are called structures because you construct your code around them, much
like you build and finish a house around its structure. Control structures are like
the wood beams and boards in your house that all of your rooms are built upon.
You can use each control structure to make your code travel in different ways,
depending on how you want the decision to be made. In this section, you will learn,
about the two control structures used in VBScript to make decisions. Later, you
will see the structures used to make cade repeat based on criteria you specify.
Making Decisions Using If...Then...Else
jure 5 - If..Then.Else.End If flow
Description
Executes a statement or block of statements based on the Boolean (True or
False) value of an expression,
Syntax
Arguments
condition ‘An expression returning either True or False or an object type.
statements ‘One or more statements separated by colons; executed if condition is
Dani Vainstein
danival968 hotmasl.com W8Senpt Basics Page 22 of 52ipting Quicktest Professional Page 23
condition-n Same as condition
(One or more statements executed if the associated
condition-nis True,
(One or more statements executed if no previous condition or
condition-n expression is True,
elseitstatements
clsestatements
If...Then
The first control structure you should know about 1f...Then. The syntax for this
control structure is given as
TE co
tion ~ qrue Then
Bnd If
vhere condition is some test you want to apply to the conditional structure. If the
condition is true, the code within the If and End If statements is executed. If the
condition is not true, the code within these statements is skipped over and does
not get executed
Suppose you have a Boolean variable named bShowDetails. This variable is set to
True at some point in your code if the user wants to see the specific details of a
calculation. You could set up a simple conditional statement that gives the user the
help he or she needs by entering
TE
T Then HS)
This way, if the user doesn't want to see the detais and the variable hasn't been
set previously, the code in between the two statements is ignored. The condition
expression is typically a test, such as whether one variable is equal to another or
whether a variable equals a certain value. The condtion always comes out either
True or False, but the conditional structure only executes the code within it if the
condition is True. When using an If,..Then structure, make sure your condition is,
expressed properly.
1 To run only one statement when a condition is True, use the single-line syntax
for the If...Then...Else statement
To run more than one line of code, you must use the multiple-tine (or block)
syntax. This syntax includes the End If statement, as shown in the following
example
00 old for this st
Bnd Tf
If...Then...Else
The If...Then structure is quite useful, but it has one limitation, Oftentimes, when
people make dacisions, they want to do one thing if a condition is true; otherwise,
they want to do something different.
For example, you may have imagined a simple decision structure in your mind that
if your favorite restaurant is opens; you will go there to eat. Otherwise, you will go
Dani Vainstein
danival958% hotmac.com
VBScript BasiesChapter 0 ipting Quicktest Professional Page 24
home and cook your own meal, You're certain to carry out either one of the two
options because you're hungry, it's time for dinner, and hey-you deserve it after
an afternaon of programming,
Apply this decision process to some code. Assume you had a variable that was
previously set to indicate the state of whether your favorite restaurant is open or
closed based on the time a script is run. You want to have your cade check this
variable and put up @ message box to let you know whether you can hit your
favorite restaurant. In this case, you wouldn't want to use the lagic.
TE MyfavoriteRestaurantopen = True Then
Msqbox staurant!
Bnd IE
Because that leaves aut the alternative. You could use two statements
Tf iyesvorstehestauransopen = True Then
Msgbox "Go To My Favorite Restaurant!
snd If
TE MyPavoritefestaurantopen = Palee Then
Magbox "Go Hone
Bnd TE
But wouldn't it be nice if you didn't have to repeat the test where you check the
negative instead of positive condition? Fortunately, you have another control
structure available to you in VBScript that makes this process easier. The control
structure, called If... Then.uElse, is represented as:
is the code that executes if the condition is satisfied
is the code that executes if the condition is not satisfied
Bnd If
You could enter the expression you've formed in your mind as you drive toward My
Favorite Restaurant as
Tf Myeavorstehestaurantopen = True Then
Msgbox My Fa Restaurant!
Else
Magbox "Co Hore and Coc
Bnd IE
This is certainly much simpler to understand, and it's equally helpful when writing
your programs.
Deciding Between Several Alternatives
A variation on the If..,Then.,.Else statement allows you to choose from several
alternatives. Adding Elself clauses expands the functionality of the
If...Then...lse statement $0 you can control program flow based on different
possibilities:
Tf condition! - True Then
Dani Vainstein
danival958% hotmac.com
VBScript Basieshapter 03 ipting Quicktest Professional Page 25,
The cose th Toes for condition
Blsel£ condition? = True Then
the code tha ites for condition
Bleel£ condit ‘True Then
the code that « s for condition?
Bnd IE
A few comments are in order about this conditional structure. Notice that only one
of the conditions can be true, If you want to execute cade for more than ane of
these conditions, you cannot use this control structure. In other words, this
structure can only execute one of the conditions. Once it finds the first condition in
the list that is true, it executes the code off that branch and ignores all the rest.
This would work fine as long as either all the variables are true or False. What if
the user didn’t specify which one and both variables were set to False? In that
case, neither would get executed and the user wouldn't see anything. You have to
be careful how you use these structures. If the logic of your problems demands
that at least some action take place for a given condition, either make sure one of
the two variables is set to true before you perform these tests, or be sure to
provide an Else conditional at the end. The Else at the end will executed if none of
the other conditions is true. The Else condition acts as a fallback position just in
case none of the other conditions is True. This might be valuable to you in cases
where you want to make sure something happens in the conditional structure.
After all, when you write code, it's best to take all possibilities into consideration;
you never know when a pesky bug might enter or same unforeseen condition
might take place, and you wouldn't want it to mess up your code.
Tf condition: ~ True Then
the that executes for condition]
ElseIf condition? ~ True Then
the that executes for condition?
ElseIf condition? ~ True Then
the that executes for conditions
Else
none condition match
Bnd IE
You can add as many ElseIf clauses as you need to provide alternative choices.
Extensive use of the ElseIf clauses often becomes cumbersome. A better way to
choose between several alternatives is the Select Case statement.
The following example shows a simple sampling of the If...Then...Else control
structure. Here, you get a variable that shows a user age, just like the first
example. Only this time, rather than perform one check, this code tests a variety
of concitions and responds differently to each one
Tf nkge — 0 Then
MsgBox "Welcome to the human race
Bisel ) then
MsgBox "You have yup a bit before you usin !
Blself nage > 0 And Age ‘Then
Msqox "If you're beld enough, mist be old enough
Dani Vainsvein
danival96a@ hotmail.com
VBScript Basies PageChapter 03 ipting Quicktest Professional Page 26
ise
MagBox "You're at the perfect
Bnd If
In this case, you see that you can do more specific checks for various age groups
and even provide an Else clause for the default case, You couldn't do that using
If...Then statements unless you want to write a lot of excess code.
Select Case
Figure 6 - Select Case Flow
Description
Allows for conditional execution of a block of cade, typically out of three or
more cade blocks, based on some condition, Use the Select Case statement as
an alternative to complex nested If...Then...Else statements.
‘Syntax
Arguments:
testexpression Any numeric or string expression.
epressiantist-n Required if Case appears. Delimited list of one or more expressions.
One or more statements executed if testexpression matches any part
of expressionlist-n,
One or more statements executed if festexpression doesn't match any
of the Case clauses.
satements-n
elsestatements
Notes
Dani Vainstein y
danival958% hotmac.com VBScript Basics
e 26 of 52Chapter 0
ipting Quicktest Professional Page 27
& Any number of Case clauses can be included in the Select Case statement
& Ifa match between testexpression and any part of expressioniist is found,
the program statements following the matched expressionlist are executed
When program execution encounters the next Case clause or the End
Select clause, execution continues with the statement immediately
following the End Select clause
© Both expressiontist and testexpression must be a valid expression that can
consist of one or more of the following: a literal value, a variable, an
arithmetic or comparison operator, or the value returned by an intrinsic or
user-defined function,
© If used, the Case Else clause must be the last Case clause. Program
execution encounters the Case Else clause, and thereby executes, the
elsestatements— only if all other expressionist comparisons fail.
& Select Case statements can also be nested, resulting in a successful match
between testexpression and expressioniist being another Select Case
statement.
Tips
& The Select Case statement is the VBA/ VBScript equivalent of the Switch
construct found in C and C++
The Case Else clause is optional. However, as with If...Then...Else
statements, it's often good practice to provide a Case Else to catch the
exceptional instance when, perhaps unexpectedly, a match can’t be found in
any of the expressionlists you have provided.
© If testexpression satisfies more than one expressiontist comparison, only the
code in the first is executed.
& ASelect Case structure works with a single testexpression that is
evaluated once, at the top of the structure, The result of the testexpression
is then compared with the values for each Case in the structure.
& The Select Case structure provides an alternative to If...Then...ElseIf for
selectively executing one black of statements fram among multiple blacks of
statements.
© A Select Case statement provides capability similar to the If...Then...Else
statement, but it makes code more efficient and readable. Select Case
structure is defined as follows:
Select Case expzession
2 code that executes if ep 1 matches &
fe code that executes if exp-2 or 2
case Else
his is the code that
End Select
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 27 of 5Chapter 0
ipting Quicktest Professional Page 28
Example
The following example uses Select Case to read a variable populated by the
user and determine the name of the user's operating system
Select Case Teft(Enyizonnent Value("osversion"), 1)
case 1 ndows NT"
case 4 » a
case » nev
case 7 ndows KEY
Case Blse 08 is unknowm"
End Select
Using Control Structures to Make Code Repeat
On occasion, you will need to write code that repeats some set of statements
Oftentimes, this will occur when you need to perform some calculation aver and
over or when you have to apply the same calculations or processing to more than
fone variable, such as changing the values in an array. This section shows you all
the control structures you can use in VBScript to control code in your program
that repeats.
Looping allows you to run a group of statements repeatedly. Some loops repeat
statements until a condition is False; others repeat statements until a condition is
True. There are also loops that repeat statements a specific number of timess
The following looping statements are available in VBScript:
B_ Do...Loop: Loops while or until a condition is True.
1B While...Wend: Loops while a condition is True.
B For...Next: Uses a counter to run statements a specified number of times
4
For Each...Next: Repeats a group of statements for each item in a collection or
each element of an array.
Using For...Next Statement
Defines a loop that executes a given number of times, as determined by a loop
counter. To use the For...Next loop, you must assign a numeric value toa
counter variable, This counter is either incremented or decremented
automatically with each iteration of the loop, In the For statement, you specify
the value that is to be assigned to the counter initially and the maximum value
the counter will reach for the block of code to be executed, The Next statement
marks the end of the block of code that is to execute repeatedly, and also
serves as a kind of flag that indicates the counter variable is to be modified.
Syntax
danival96a@ hotmail.com VBScript BasicsChapter 03 Scripting
Duicktest Professional Page 29
Arguments
Numeric variable used as a loop counter. The variable can't be an array
counter [element or an element of a user-defined type.
start Initial value of counter
end Final value of counter.
‘Amount counter is changed each time through the loop. If not specified,
seep step defaults to one.
‘One or more statements between For and Next that are executed the
statements | specified number of times.
Notes
E If start is greater than end, and no step keyword is used or the stepcounter
counter is positive, the For...Next logp is ignored and execution
commences with the first line of code immediately following the Next
statement
& Ifstart andend are equal and stepcounter is one, the loop executes ance
counter can't be a variable of type Boolean or an array element.
E counter is incremented by one with each iteration unless the Step keyword
is used.
B If the Step keyword is used, step specifies the amount stepcounter is
incremented if stepcounter is positive or decremented if it's negative
If the Step keyword is used, and stepcounter is negative, start should be
greater than end. If this isn’t the case, the loop doesn't execute.
E The For...Next loop can contain any number of Exit For statements. When
the Exit For statement is executed, program execution commences with
the first line of code immediately following the Next statement
For Bach subobject In nyOb
ect NamePr:
0 then
Tips
The following example causes a procedure called MyProc to execute 50 times
The For statement specifies the counter variable x and its start and end values.
The Next statement increments the counter variable by 1 as default.
Dani Vainstein y
danival958% hotmac.com VBScript Basics
© 29 of 52Chapter 0 ipting Quicktest Professional Page 50
For = 1 Te 5
yProe
Went
Using the Step keyword, you can increase or decrease the counter variable by
the value you specify. In the following example, the counter variable jis
incremented by 2 each time the loop repeats. When the loop is finished, the
totalis the sum of 2, 4, 6, 8, and 10.
Dim i, total
For | = 1 To 1) step
total = total +
Next:
MsgBox "The cotal is" « total
To decrease the counter variable, use a negative Step value. You must specify
an end value that is less than the start value. In the following example, the
counter variable myNum is decreased by 2 each time the loop repeats. When
the loop is finished, total is the sum of 16, 14, 12, 10, 8, 6, 4, and 2.
Dim |, total
For ¢ To 2 Step -2
Next
MegBox "The total is" § total
You can exit any For...Next statement before the counter reaches its end value
by using the Exit For statement. Because you usually want to exit only in
certain situations, such as when an error occurs, you should use the Exit For
statement in the True statement block of an If...Then...Else statement, If the
condition is False, the loop runs as usual.
For..Next loops can also be nested.
For nbay = 1 To
For niiour
For #
E When you use a positive step value, make sure the finish value is greater
than the start value, or the loop will not execute at all
For | .
For =
“0 to | step 2
= to 10 step 2
u When you use a negative step value, make sure the start value is greater
than the finish value, or the loop won't execute at all
For
For
to 0 Step °
to _ step '
E Never use a step value of zero. In this case, VBScript will enter an infinite
loop, and your program might run indefinitely
Dani Vainstein
danival958% hotmac.com
VBScript Basies Page 30 of 5:Chapter 03 Scripting Quicktest Professional Page S1
Using For Each...Next Statement
Description
Repeats a group of statements for each element in an array or an abject
collection
‘Syntax
Arguments
‘The string arqument is any valid string expression. If string contains
Null Nullis returned
group Name of an object collection or array.
statements _One or more statements that are executed on each item in group.
element
Notes
The For...Bach code block is executed only if group contains at least one
element.
E All statements are executed for each element in group in turn until either
there are no more elements in group, or the loop is exited prematurely
using the Exit For statement. Program execution then continues with the
line of code following Next.
For Each...Next loops can be nested, but each element must be unique.
For example:
For Each nyo) En andbiec
ect Ia nyOhyect
Uses a nested For Each...Next loop, but two different variables, myOby and
subObject, represent element.
E Any number of Exit For statements can be placed with the For
Each...Next loop to allow for conditional exit of the loop prematurely.
On exiting the loop, execution of the program continues with the line
immediately following the Next statement.
For example, the following loop terminates once the program finds a name
31 of 52
Dani Vainstein y
danival958% hotmac.com VBScript Basics PaProfessions Page 32
Chapter 03 Scripting Quickte:
in the myObj collection that has fewer than 10 characters:
For Each ect In nyob
Name ~ subdhject .WanePropert
TE Len(snane} < 10 Then
But For
znd if
Next
Tips
Each time the loop executes when iterating the objects in a collection, an
implicit Set statement is executed. The following code reflects the
"longhand” method that is useful for explaining whet is actually happening
during each iteration of the For Each...Next loop:
For i = 1 to MyObject.count
Set nyobivar =
MsgBox ny0bjVVar-Name
Next
Because the elements of an array are assigned to eement by value,
element is a local copy of the array element and not a reference to the
array element itself, This means that you can't make changes to the array
element using For Each...Next and expect them to be reflected in the
array once the For Each...Next loop terminates, as demonstrated in the
example shown next.
Dim sczNanehs
Dam inicer
& For example, on the first iteration of the loop, although varlvame has been
changed from "Paul" to "Changed," the underlying array element,
strNameArray(0), still reports a value of "Paul.
This proves that a referential link between the underlying array and object
variable isn’t present; instead, the value of the array element is passed to
element by value.
Using Do...Loops Statement
Description
Repeatedly executes a block of code while or until a condition becomes True.
Syntax
Dani Vainstein o 52 of
danival96a@ hotmail.com VBScript Basics Page 32 of 5Chapter 03 Scripting Quicktest Professional Page 33.
Arguments
Numeric or string expression that is True or False. If condition is Null,
condition is treated as False.
condition
One or more statements that are repeated while or until condition is
statements $02
Notes
On its own, Do...Loop repeatedly executes the code that is contained
within its boundaries indefinitely. You therefore need to specify under what
conditions the loop is to stop repeating, Sometimes, this requires modifying
the variable that controls loop execution within the loop. For example
De
acty = nets #1 ify Loop
MsgBox "Iwration * & nctr 6 7
to upper Limit
cr 10 Then Exit Do
Tey
Loop
E Failure to do this results in the creation of an endless loop,
Adding the Until keyword after Do instructs your program to Do something
Until the condition is True. Its syntax is
E If condition is True before your code gets to the Do statement, the code
within the Do...Loopis ignored.
Adding the While keyword after Do repeats the code while a particular
condition is True. When the condition becomes False, the loop is
automatically exited, The syntax of the Do While statement is
De Waile con
code to ex
Loop
ite
Dani Vainstein
danival968 hotmasl.com W8Senpt Basics Page 33 of 52Chapter 03 Scripting Quicktest Professional Page 34
1 Again, the code within the Do...Loop construct is ignored if condition is
False when the program arrives at the loop.
In some cases, you may need to execute the loop at least once, You might,
for example, evaluate the values held within an array and terminate the
B loop if a particular value is found. In that case, you'd need to execute the
loop at least once. To do this, place the Until or While keyword along with
the condition after the Loop statement. Do...Loop Until always executes
the cade in the loop at least once and continues to loop until the condition is
True. Likewise, Do...Loop While always executes the code at least once,
and continues to loop while the condition is True, The syntax of these two
statements is as follows
te
Loop While condi!
A Null condition is treated as False.
Your code can exit the loop at any point by executing the Exit Do
statement
Using While. . .Wend Statement
The While...Wend statement executes a series of statements as long as a
given condition is True.
‘Syntax
Arguments
Numeric variable used as a loop counter. The variable can’t be an array
element or an element of a user-defined type.
condition
One or more statements between For and Mext that are executed the
statements specified number of times.
Notes
E ANull condition evaluated as False,
E If condition evaluates to True, the program code between the While and
Wend statements executed. After the Wend statement is executed, control
is passed back up to the While statement, where condition is evaluated
again. When condition evaluates to False, program execution skips to the
Dani Vainstein y
danival958% hotmac.com VBScript Basics Pa
34 of 52Chapter 0
ipting Quicktest Professional
first statement following the Wend statement.
tu You can nest While...Wend loops within each other.
Tips
The While...Wend statement remains in VBScript for backward
compatibility only. It has been superseded by the much more flexible
Do...Loop statement.
Putting all together
Now that you've seen all the decision structures at your command, you know that
you have quite a wide variety of choices. You might be wondering at this point,
"How do I know which control structure to use?" Oftentimes, you can structure
your code where you can choose from one or more of the techniques explained
today. I can't provide a specific set of rules to follow for every case. Often, it just
boils down to using the structure that expresses what you want to do the most
clearly. The If... Then...Else structure is fairly intuitive and straightforward, Still,
you might want to keep the following points in mind:
1 Do you want to take a single action based on a decision, or do you want to
take more than ane possible action based on a decision?
B If you only have one action to consider, the If...Then structure is best for you.
If, however, you have several tests to do and actions to match each, you might
want to use a series of If... Then...Elself statements, Often, it helps to write a
flovichart or a graph of what you want the program to do under what
circumstances,
B Sometimes, you might wonder whether you should use the For...Next control
structure. Ask yourself the following question: Do you want the code in your
loop to execute a certain number of times based ona counter that can be
adjusted each time through the loop?
If so, and this is often the case, use the For...Next loop. If, for instance, you
have to set a series of elements within an array or perhaps perform some
calculation a certain number of times, the For...Next loop is the structure to
use. If you can’t find a connection between a counter, start value, and stop
value for repeating the cade in your conditional, you might have to consider a
Do...Loop.
You might hesitate when deciding what type of Do...Loop to use for the case in
question, You should keep the following tips in mind when making your decision
Do you want the code within your loop to always execute at least once?
B Ifo, you should use either the Do...Loop Until or Do...Loop While
structures.
1 If you want to loop through code until something happens, such as setting a
variable or completing some procedure successfully, you should use the
Do...Loop Until or Do Until...Loop structures.
1 Any time you want to repeat the code in your loop while some condition is true
or while something is happening, the Do...Loop While or Do While...Loop
structures are probably best.
Take some time to think of the right looping approach, At the same time, realize
that there is often no one best approach, Even experienced programmers might
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 35 of 5:Chapter 03 pting Quicktest Professional
each choose different looping constructs to solve the same problem
A control structure is a set of code statements you can use to enable blocks of
code to repeat or to execute ar not execute based on decisions made in those
statements. You have seen the syntax of each control structure available in
VBScript. With your knowledge of variables, operators, and control structures,
you are becoming an increasingly competent and knowledgeable QuickTest
programmer.
Control structures are at the heart of VBSeript programming. A program usually
has ta make many decisions
Subroutines and Function Procedures
A procedure is a grouping of code statements that can be called by an associated
name to accomplish a specific task or purpose in a program. Once a procedure is
defined, it can be called from different locations in the program as needed,
Functions and procedures (or subroutines) are central to modern programming.
Dividing our script into subroutines helps us to maintain and write programs by
segregating related code into smaller, manageable sections. It also helps to reduce
the number of lines of code we have to write by allowing us to reuse the same
subroutine or function many times in different situations and from different parts
of the program. In this section, we'll examine the different types of subroutines,
how and why they are used, and how using subroutines helps to optimize code.
In VBScript, there are two kinds of procedures; the Sub procedure and the
Function procedure.
What Are Functions?
Functions are @ way of performing a task and getting something back. For
example, VBScript has a function named Date(), which simply looks up and
provides the current date according to your computer's internal clock, Functions
are used to perform special calculations, retrieve information, look up information,
convert data types, manipulate data, and much more.
Sub Procedures
A Sub procedure is a series of VBScript statements (enclosed by Sub and End
Sub statements) that perform actions but don't return a value. A Sub procedure
can take arguments (constants, variables, or expressions that are passed by a
calling procedure). If @ Sub procedure has no arguments, its Sub statement must
include an empty set of parentheses ()
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 38 of 5Chapter 0
ipting Quicktest Professional Page S7
Function Procedures
A Function procedure is a series of VBScript statements enclosed by the
Function and End Function statements. A Function procedure is similar to a
Sub procedure, but can also return a value. A Function procedure can take
arguments (constants, variables, or expressions that are passed to it by a calling
procedure). If a Function procedure has no arguments, its Function statement
‘must include an empty sat of parentheses. A Funetion returns a value by
assigning a value to its name in one or more statements of the procedure. The
return type of a Function is always a Variant.
Declaring Subroutines/Functions
There are several very straightforward rules to remember when giving names to
your subroutines/functions
The name can contain any alphabetical or numeric characters and the
underscore character.
B The name cannot start with a numeric character.
@ The name cannot contain any spaces. Use the underscore character to
separate words to make them easier to read.
For example.
Sub
Funetson My Fu
ab
Both contain illegal subroutine names. However:
Both are legal Subroutine/ Functions names
BA subroutine/function can be scoped as Public, Private or Default
® Public - indicates that the Sub/Function procedure is accessible to all
other procedures in all scripts
2 Default - Used only with the Public keyword in a Class block to indicate
that the Sub/Function pracedure is the default method for the class. An
error occurs if more than one Default pracedure is specified in a class
® Private - Indicates that the Sub/Function procedure is accessible only to
other procedures in the script where it is declared.
@ If not explicitly specified using either Public or Private, Sub procedures
are public by default
1 Sub/Function Subroutines can receive 0 (zero) ton argument parameters
2 The list of variables representing arguments that ere passed to the
Subroutine when it is called
& Commas separate multiple variables
@ Arguments can be passed in two ways
u_ByVal - Indicates that the argument passed by value.
1 ByRef - Indicates that the arqument passed by reference.
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 37 of 5:Chapter 0
ipting Quicktest Professional Page 98
4 varname - Name of the variable representing the argument; follows
standard variable naming conventions
You can't define a Sub/ Function procedure inside any other procedure,
© The Exit Sub/Exit Function statement causes an immediate exit from a
Sub/Function procedure. Program execution continues with the statement
that follows the statement that called the Sub/Function procedure. Any
number of Exit Sub/Exit Function statements can appear anywhere in a
Sub/Function procedure.
@ Sub/Function procedures can be recursive, that is, they can call themselves
to perform a given task, However, recursion can lead to stack overflow.
B Variables used in Sub/ Function procedures fall into two categories
= Those that are explicitly declared within the procedure and those that not
2 Variables that are explicitly declared in a procedure are always local to the
procedure.
@ Variables that are used but not explicitly declared in a procedure are also
local, unless they are explicitly declared at some higher level outside the
procedure:
BA procedure can use a variable that is not explicitly declared in the procedure,
but a naming conflict can occur if anything you have defined at the script level
has the same name, To avoid this kind of conflict, use an Option Exp!
statement to force explicit declaration of variables.
@ VBScript may rearrange arithmetic expressions to increase internal efficiency.
Avoid using a Function procedure in an arithmetic expression when the
function changes the value of variables in the same expression.
1 To return a value from a Function subroutine, assign the value to the function
name.
Calling a Subroutine
Now that you've learned how to create a subroutine, how do you call one? You can
call 2 subroutine throughout the rest of the application once you've declared and
created it. You can call subroutines by using the Call keyword or just entering the
name of the subroutine on a line of code. For example, to call a subroutine called
ShowMessage, you could enter
ShowMessage "This is nessage
You could also use the Call keyword and enter
al
te
Notice that in the first method, you do not place parentheses around the
arguments of the subroutine. On the ather hand, if you use Call, you must enclose
the arguments in parentheses, This is simply a convention that VBScript reuires
What if a subroutine has no arguments? To call the subroutine
ShowAboutMessage, you could enter
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 38 of 5:Chapter 0 Scripting
Duicktest Professional Page 59
Or you could use
Call ShowihoutNessage
The first method simply lists the name of the subroutine. The second method uses
Call but doesn't require parentheses because the subroutine has no arguments.
Whether you use the parentheses when you call or declare a subroutine with no
arguments is a personal preference about writing code. When you call a subroutine
without the Call statement, it can be more difficult to figure out the difference
between a subroutine and a variable in your code, especially if your code is
lenathy. Although the choice is up to you, it is generally recommended that you
always use the Call statement when calling subroutines for the sake of readability.
Call Statement
Description
‘The Call statement passes program control to an explicitly named procedure or
function,
Syntax
Arguments,
Cal Required. The name of the subroutine being called.
‘Optional. A comma-delimited list of arguments to pass to the
subroutine being called
Notes
E The Call statement requires that the procedure being called be named
explicitly.
You cannot assign the subroutine name to a variable and provide that as an
argument to the Call statement. For example, the following is an illegal use
of Call
Dim 6
Tegal
stroc is a variak
E_ The following code fragment shows a valid use of the Call statement
Gall PrintRous:ne(sRepor= Tegal uss0e
You aren't required to use the Call keyword when calling a function
procedure. However, if you use the Call keyword to call a procedure that
requires arguments, argumentiist must be enclosed in parentheses. If you
omit the Call keyword from the procedure cali, you must also omit the
parentheses around argumentiist.
Tips
Dani Vainstein
danival958% hotmac.com VBScript Basics Page 39 of 52Chapter 0 ipting Quicktest Professional Page 40
You can use the Call keyword to call a function when you're not interested
in the function's return value.
E The use of the Call keyword is considered outdated. We suggest not using
the keyword, as it is unnecessary and provides no value.
If you remove the Call statement but fail to remove the parentheses from a
call to.a subroutine with a single argument, then that argument is passed
by value rather than by reference. This can have unintended consequences.
Calling a Function
Now that you've seen how to declare a function, you need to know how to call it.
The benefit of using a function is that you can pass back a piece of data to the
caller. The subroutine does not enable you to do this because it does not return
anything, You will see a way to change variables in the calling code with a
subroutine later today, but the function is a better way to get data back and forth
To call a function, you simply use the syntax
re . ane jargunentl ta
Notice that in this case, the syntax is quite a bit different from the subroutine.
Here, you can assign the function to a variable (or another expression that can be
updated with a value, such as a property, which will be covered in later lessons),
or you needn't assign it to anything. The parentheses are optional only when no
arguments are passed to the function,
For an example of its use, suppose you have a function called cezage, To use the
cetase function, you could enter the statement
Use
Notice that this function doesn't need any érguments, and the result is assigned to
a variable named UserAge. The following function requires three arquments-hours,
minutes, and seconds-and returns the number of seconds
Where, the total number of seconds is returned to the variable NumSeconds.
The statement
Would also be valid, but it wouldn't be very useful because you're not retrieving
the number of seconds from the function! This simply calls a function as if it were
a subroutine, without handling the return value, You can also utilize a function
within an expression, such as
MsgBox "TRE.
Dani Vainstein
danival958% hotmac.com
VBScript Basies Page 40 of 5:Chapter 0 ipting Quicktest Professional Page 41
You don’t need to assign a variable to the return of the function because the return
value is automatically used within the statement. Although this is certainly legal, it
is not always the best programming practice, If you want to use the result of the
function more than once, you must store the result in a variable. Otherwise, you
will have to call the function again and waste the computer's resources in doing
the calculation all over again. Likewise, storing the value in a variable to avoid
repeated calls makes the code more readable and maintainable
Exiting a Subroutine/Function
The code within your subroutine/function will execute until one of two things
happens. First, the subroutine/function might get down to the last line, the End
Sub/End Function line, which terminates the subroutine and passes the baton
back to the caller. This statement can appear only ance at the end of the
subroutine declaration. The second possibility is that VBSeript could execute the
following code statement:
Exit Sub (for subroutine)
Bxit Functzon (for functions)
When, placed inside the subroutine/function. You might use this statement if you
nead to provide more than one exit point for the subroutine/function. However,
you shouldn't need to use this very often if your subroutine is constructed
properly. Consider the following function
Public Function Convert PeetTeInches (ByVal nEee
ree ‘Then
Exit Function
Blse
ConvertFeetToInches = nFee: + 12
Bnd TE
Bnd Function
This function contains an Exit Function statement, which could be avoided by
changing the Function to:
Public Function Convert Pee=ToTnches (By
If nfeer >= 0 Ther
Con eeTotnches = nFe
Bnd TE
Bnd Func:
Passing Arguments into Procedures
Procedures are an essential part of almost every program. When you define a
procedure, whether it's a Function or a Sub procedure, you need to decide
whether the procedure arguments are passed by reference or by value.
What difference does it make?
Dani Vainstein
hotmail.com
VBScript Basies Page 41 of 5
danivalChapter 03 Scripting Quicktest Prafessional Page 42
VBScript default is to pass arguments by reference. You can include the ByRef
keyword in an argument list if desired but, because this is the default, it has no
effect:
Sub Foo (fyRef Agi, Pyhet Arg ]
The procedure is passed the address of the argument variable (in other words, a
reference to the variable)
Dam
call a
In this example, MySub receives a reference to Total. The practical consequence of
this is that code in MySub can change Total. Here's an example. First, the
procedure:
Sub you
Bnd Sub
Now the code that calls the procedure
call Myoub (Toe
Dim total + Toral = 1
After this code executes, the variable Total equals 50 because the code in the
procedure changed its value. To pass an argument by value, use the ByVal
keyword
Sub MySub By
aa |
When you use ByVal, the procedure is passed a copy of the argument variable
and not a reference to the argument variable itself. Code in the procedure cannot
change the variable's value.
Sub NySub(ByVal Total
moral = 5
Bnd Sub
Now the code that calls the procedure.
After this code executes, Total is still equal to 100.
Note that array arguments and user-defined type arguments cannot be passed
ByVal. Aiso, using ByVal or ByRef doesn't have any effect when the argument is
alliteral constant--only when it’s a variable.
For most procedures, the default ByRef argument passing is fine. You can use
ByVal when you want to ensure that code in the procedure cannot change the
variable that was passed as an argument.
Why Are Procedures Useful?
If you're new to programming, you might be wondering why procedures are useful
Dani Vainstein
danival958% hotmac.com
VBScript Basies Page 42 of 5:Chapter 0 ipting Quicktest Professional Page 43
in the first place. There are three primary reasons: readability, maintainability, and
correctness
Procedures are useful any time you have a task that must be accomplished many
times, perhaps in many places in your code, throughout your program. Suppose
you request an order number from the user, and each time the number is entered,
you want to make sure it's valid. One option is to write code that checks each time
an order is entered, The following code should be placed in a function.
Spouseorde: — TaputBox("What order would you Li four spow
If spouseorder < 9 Then
MsgBox "The order munber is invalid
and 1
ouOrder = InputBox ("Whar ozder would you like for yoursel
If rder <0 Then
MsgBox rider number is invalid
and 1
\ilddrdes ~ InputBox ("what order would you Like for
If caildor ‘Then
MsgBox rder nurber is invalid
Bnd If
As you can see from this example, the same check is repeated three times in your
code, this results in code that is not only more difficult to read, but also more
difficult to maintain
Rather than type the same code three times, wouldn't it make your code more
readable if you created a function and placed the repeating code within that
function? Suppose you call the function VerifyOrderMumber and piace the common
code in that function,
Public Function Verifyordestn
‘eri fyOrderlumber = False alue
IE TaMunerie(nczdestiunber
MsgBox "ti
Exit Function
Blsel£ ndsderiumhe: ‘Then
MsgBox "The ozder munber valid
Blse
jeri yOrd True
Bnd Tf
Bnd Function
Using a function to improve the program
Do
sSpouseorder = InputBex( "what for your spouse?"
Loop Until Ver: fyorderthunber (sSpou
De
NpUbFox ("what order would you Like for yoursel fo
jerkunber 's¥ouror
a
jeri fyOrderiumber |achild
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 43 of 5:Chapter 03 Scripting
Duicktest Professional Page 44
If the user enters values greater than zero, the functian returns with a Boolean
variable indicating the result is valid, Otherwise, the function returns the Boolean
value for false, and the loop continues to prompt the user until an order number
entered, calling the function again each time through.
In this case, you have placed all the repeating code within a function so that the
code within the function appears just ance rather than several times throughout
the program. Doing this has several advantages. First of all, it's a lot easier for the
reader of the code. He can see what the code does in one word rather than having
to wade through all the details. Furthermore, it cuts down on the size of the code
listing. Perhaps most important, it makes the code mare maintainable.
Exit Statement
Description
‘The Exit statement exits a block of Do...Loop, For...Next, Function, or Sub
code.
‘Syntax
‘The Exit statement syntax has these forms:
oop statement. If the current Do...Loop is within @
oop, execution continues with the next Loop statement
‘wrapped around the current one. If, however, the Do...Loop is
standalone, program execution continues with the first line of code
after the Loop statement.
Exits a For...Nextloop. If the current For...Next is within a nested
For...Next loop, execution continues with the next Next statement
Exit For wrapped around the current one. If, however, the For...Next loop is
standalone, program execution continues with the first line of code
after the Next statements
Immediately exits the Function procedure in which it appears:
Exit Function | Execution continues with the statement following the statement that
called the Function.
Immediately exits the Sub procedure in which it appears. Execution
Exit Sub continues with the statement following the statement thet called the
Sub.
Immediately exits the Property procedure in which it appears:
Exit Property | Execution continues with the statement following the statement that
called the Property procedure.
Dani Vainstein y
VBScript Basies 44 of 52
danival958% hotmac.comChapter 0
ipting Quicktest Professional Page 45,
Traditional programming theory recommends one entry point and one exit point
for each procedure. However, you can improve the readability of long routines
by using the Exit statement. Using Exit Sub can save having to wrap almost an
entire subroutine (which could be tens of lines long) within anIf...Then
statement.
With Exit Sub:
Sub MyzeseSub (nbunber
Té number = 10 Then
mit sub
and
Bnd Sub
Without Exit Sub:
Sub a
3 avian
Pub iallunber
> 1) Then
Bnd 1
End Sub
In the case of the Exit Function, Exit Property, and Exit Sub statements, the
point in the program to which program flow returns depends on the caller of the
Property, Function, or Sub, respectively, and not on the Property,
Function, or Sub itself.
Coding Conventions
Coding conventions are suggestions that may help you write code using Microsoft
Visual Basic Scripting Edition, Coding conventions can include the following
Naming conventions for objects, variables, and procedures
@ Commenting conventions
Text formatting and indenting guidelines
The main reason for using a consistent set of coding conventions is to standardize
the structure and coding style of a script or set of scripts so that you and others
can easily read and understand the code.
Using good coding conventions results in precise, readable, and unambiquous
source. code that is consistent with other language conventions and as intuitive as
possible
Constant Naming Conventions
Constant names should be uppercase with underscores (_) between words. For
example:
USER LIST MAX
NEWLINE
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 45 of 5:Chapter 03 ripting Quicktest Professional Page 46,
Variable Naming Conventions
For purposes of readability and consistency, use the prefixes listed in the following
table, along with descriptive names for variables in your VBScript code.
Boolean b bexist
DateTime d Now
String s same
Object ° oFile
Integer, Byte, Long n (numeric) nCounter
Single, Double F fPrice
Error er errResponse
Array arr arrLabels
Currency ‘ Dollar
Table 10 - Variable naming conventions
Descriptive Variable and Procedure Names
The body of a variable or pracedure name should use mixed case and should be as
complete as necessary to describe its purpose. In addition, procedure names
should begin with a verb, such as InitWameArray or CloseDialog.
For frequently used or long terms, standard abbreviations are recommended to
help keep name length reasonable. In general, variable names greater than 32
characters can be difficult to read
Object Naming Conventions
The recommended conventions for the various objects you may encounter while
programming VBScript is the prefix "o", in some cases, for known ActiveX objects
i recommend the following prefixes:
ADODB.Connection Conn)
ADODB.Recordset oRst
Scipting FileSystemObject oFso
Scipting TextStream oTxt
Scripting. Dictionary dic
Shell.Application oWsh
Excel, Application oxts
Table 11 - Object naming conventions
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 46 of 52Chapter 0 ipting Quicktest Professional Page 47
Code Commenting Conventions
All procedures, actions and reusable actions, should beain with a brief comment
describing what they do, This description should net describe the implementation
details (how it does it) because these often change over time, resulting in
unnecessary comment maintenance work, or worse yet, erroneous comments. The
code itself and any necessary inline comments descnbe the implementation.
Arguments passed to a procedure should be described when their purpose is not
‘obvious and when the procedure expects the arguments to be in a specific range.
The follow example demonstrates a QuickTest action header template convention
for a reusable action.
Functions and Sub Standards
Procedure Header
The importance of documentation I have described on chapter Table 11 - Object
naming conventions
Code Commenting Conventions on page 46,
Dani Vainstein
danival96a@ hotmail.com
VBScript Basies Page 47 of 5Chapter 0 ipting Quicktest Professional Page 48
Here I want to show how documentation of functions can enhance the QuickTest
auto documentation feature the keyword view. The Keyword View can contain any
of the following columns: Item, Operation, Value, Assignment, Comment, and
Documentation. Where the Documentation column is 2 Read-only auto
documentation of what the step does, in an easy-to-understand sentence.
For Example, I have this a simple Sum function on an external vbs file.
Function Sum ByVal 2, ByVal |
snd Function
Then, in my script I perform the follow call
The keyword view will show the follow:
Poet tena
Peart
enndencal ee sim)
Figure 7 - Without auto documentation
power
emanca = a raisin baa sn aa
ure 8 - Applying auto documentation
Dani Vainstein
danival958% hotmac.com
VBScript Basies Page 48 of 5:Chapter 0 ripting Quicktest Professional Page 49
The QuickTest Editor Options
Fonts and Colors
Sena Fer Cd0 Ky Bde
Fen
a
F nto
Figure 9 - Editor Options, Fonts and Colors
‘The First time you install QuickTest Professional on your computer, the default
font for the Expert View is “Microsoft Sans Serif*, It was designed to be metrically
compatible with the original MS Sans bitmap font that shipped in early versions of
Microsoft Windows. The original MS Sans was in the inflexible .fon bitmap format
and could not be scaled. Microsoft Sans Serif is much more flexible and legible as
it supports font antialiasing and scalable user interfaces. It’s a nice font, but when
displaying BLANKS (Spaces) he’s vary confusing. By a simple look, is hard to verify
if you have 1 or 2 blanks. When using the object repository, is critical.
So the recommended font is "Courier New", because is a wide font, and the width
is equal for every character.
danival96a@ hotmail.com VBScript Basics Page 49 of 52Chapter 0
ipting Quicktest Professional Page 50
General
Ger ete asa) a Br
Swnrtte
tuoinint
Indeed stm ei ebay
Stent amin
FF Date arsine oe
FF Space
Fewer
FF Neier
F Spa
User chce
Tabeqeen [Fa] chasoon
igure 10 - Editor Options, General
Note that "Show line numbers" is checked, very usefull for debbuging your scripts.
"Tab Spacing” was set to 4 (default), for indetations
"Auto-expand VBScript syntax" was removed. If you are an experience user, auto
expand, will only disturb your work
Code Indentation
Code Indentation is, almost as important as writing code itself
Code blocks are defined by their indentation. By "code block”, I mean functions, if
statements, for loops, while loops, and so forth. Indenting starts a block and
unindenting ends it, There are no explicit braces, brackets, or keywords. This
means that whitespace is significant, and must be consistent.
1 Indent standard nested blocks four spaces
1 Indent the overview comments of a procedure one space.
1 Indent the highest level statements that follow the overview comments four
spaces, with each nested block indented an additional four spaces.
The following code adheres to VBScript coding conventions.
Dani Vainstein o so ors:
danival96a@ hotmail.com VBScript Basics Page 50 of 5Chapter 0 ripting Quicktest Professional Page 51
Publis Function ByRoe Byvar
and tot
Then
ena 16
Loop
QuickTest Reusable Action Header
Creating an Action Template*
If you want to include one or more statements in every new action in your test,
you can create an action template. For example, if you always enter your name as
the author of an action, you can add this comment fne to your action template. An
* Qrp User's Guide > Creating Tes
Template
Dani Vainstein
danival958% hotmac.com
nents > Working with Actions > Creating an Action
VBScript Basies Page 51 of 52Chapter 03 Scripting Quickte: 2
Professions Page 5:
action template applies only to actions created on your computer.
To create an action template:
Create a text file containing the comments, function calls, and other statements
that you want to include in your action template. The text file must be in the
structure and format used in the Expert View.
Save the text file as ActionTemplate.mst in your \dat folder. All new actions you create contain the script lines from the
action template
Note: Only the file name ActionTempiate.mst is recognized as an action template.
Dani Vainstein
danival
VBScript Basies Page 52 of 5:
hotmail.com