by Rick Darnell
You didn't run out to the computer store and buy a copy of VBScript. You didn't install a VBScript disk on your computer, either. All you did was install the Internet Explorer browser, which supports VBScript, on your computer--just like millions of other folks. Everyone of them has the VBScript engine on their computer, and everyone of them has the ability to create Web pages with VBScript.
So where's the integrated development environment that you're used to using in Visual Basic? Keep looking, because there isn't one. All you have is your favorite text editor, the ActiveX Control Pad, and a Web browser. That in itself is the single largest difference between Visual Basic and VBScript. It leads to some specific differences, too. Here's what they are:
You don't compile a VBScript program into an EXE file like you do with a Visual Basic program. You distribute your scripts as plain, old text embedded in HTML files. Everyone and his uncle can read your scripts. The script engine interprets this text into intermediate code when it loads the Web page. It also creates a symbol table so that it can quickly look up things such as event-procedures and variable names. The scripting engine uses the ActiveX Scripting technology to interact with the browser.
[BEG]NOTE:[END] You'll find a plethora of nit-picky differences between Visual Basic and VBScript, too. You have to use the value property to query an objects value, for example. Thus, instead of reading a text box's value using form.text, you have to read it using form.text.value. These subtle differences are too numerous to document in this appendix. Go to Microsoft's Web site (www.microsoft.com) and their knowledge base for further explanation of these differences.
Another significant difference between Visual Basic and VBScript is the keywords that Microsoft omitted from VBScript. You'll learn more about the keywords included in VBScript in the next section. You'll learn about the keywords that Microsoft omitted from VBScript in "Visual Basic Keywords Omitted from VBScript," later in this appendix.
VBScript includes all the keywords and features that you need to activate a Web page. You can't read or write files, as you'll learn later in this appendix, but you can handle any event that an object fires. You can also handle just about any type of data that you'll find on a Web page and manipulate the Web page in anyway you want.
Table C.1 describes each keyword or feature available in VBScript. I've divided this table into broad categories, with each entry under a category describing a single feature. I've used the same categories that Microsoft uses so that you can keep this information straight as you bounce back and forth between Microsoft's Web site and this book. If you don't find a feature that you expect to see, check out Table C.2 to see if that feature is in the list of Visual Basic features omitted from VBScript.
You can find more information about VBScript's features at Microsoft's VBScript Web site: http://www.microsoft.com/vbscript.
Keyword/Feature | Description |
Array handling | |
IsArray | Returns True if a variable is an array |
Erase | Reinitilizes a fixed-size array |
LBound | Returns the lower bound of an array |
UBound | Returns the upper bound of an array |
Assignments | |
= | Assigns a value to a variable |
Let | Assigns a value to a variable |
Set | Assigns an object to a variable |
Comments | |
` | Includes inline comments in your script |
Rem | Includes comments in your script |
Constants/Literals | |
Empty | Indicates an uninitialized variable |
Nothing | Disassociates a variable with an object |
Null | Indicates a variable with no data |
True | Boolean True |
False | Boolean False |
Control flow | |
Do...Loop | Repeats a block of statements |
For...Next | Repeats a block of statements |
For Each...Next | Repeats a block of statements |
If...Then...Else | Conditionally executes statements |
Select Case | Conditionally executes statements |
While...Wend | Repeats a block of statements |
Conversions | |
Abs | Returns absolute value of a number |
Asc | Returns the ASCII code of a character |
AscB | Returns the ASCII code of a character |
AscW | Returns the ASCII code of a character |
Chr | Returns a character from an ASCII code |
ChrB | Returns a character from an ASCII code |
ChrW | Returns a character from an ASCII code |
CBool | Converts a variant to a boolean |
CByte | Converts a variant to a byte |
CDate | Converts a variant to a date |
CDbl | Converts a variant to a double |
Cint | Converts a variant to an integer |
CLng | Converts a variant to a long |
CSng | Converts a variant to a single |
CStr | Converts a variant to a string |
DateSerial | Converts a variant to a date |
DateValue | Converts a variant to a date |
Hex | Converts a variant to a hex string |
Oct | Converts a variant to an octal string |
Fix | Converts a variant to a fixed string |
Int | Converts a variant to an integer string |
Sgn | Converts a variant to a single string |
TimeSerial | Converts a variant to a time |
TimeValue | Converts a variant to a time |
Dates/Times | |
Date | Returns the current date |
Time | Returns the current time |
DateSerial | Returns a date from its parts |
DateValue | Returns a date from its value |
Day | Returns day from a date |
Month | Returns month from a date |
Weekday | Returns weekday from a date |
Year | Returns year from a date |
Hour | Returns hour from a time |
Minute | Returns minute from a time |
Second | Returns seconds from a time |
Now | Returns current date and time |
TimeSerial | Returns a time from its parts |
TimeValue | Returns a time from its value |
Declarations | |
Dim | Declares a variable |
Private | Declares script-level private variable |
Public | Declares public-level public variable |
ReDim | Reallocates an array |
Function | Declares a function |
Sub | Declares a subprocedure |
Error Handling | |
On Error | Enables error handling |
Err | Contains information about last error |
Input/Output | |
InputBox | Prompts the user for input |
MsgBox | Displays a message to the user |
Math | |
Atn | Returns the Arctangent of a number |
Cos | Returns the cosine of a number |
Sin | Returns the sine of a number |
Tan | Returns the tangent of a number |
Exp | Returns the exponent of a number |
Log | Returns the logarithm of a number |
Sqr | Returns the square root of a number |
Randomize | Reseeds the randomizer |
Rnd | Returns a random number |
Operators | |
+ | Addition |
- | Subtraction |
^ | Exponentiation |
Mod | Modulus arithmetic |
* | Multiplication |
/ | Division |
\ | Integer Division |
- | Negation |
& | String concatenation |
= | Equality |
<> | Inequality |
< | Less Than |
<= | Less Than or Equal To |
> | Greater Than |
>= | Greater Than or Equal To |
Is | Compares expressions |
And | Compares expressions |
Or | Compares expressions |
Xor | Compares expressions |
Eqv | Compares expressions |
Imp | Compares expressions |
Objects | |
CreateObject | Creates reference to an OLE object |
IsObject | Returns True if object is valid |
Options | |
Option Explicit | Forces explicit variable declaration |
Procedures | |
Call | Invokes a subprocedure |
Function | Declares a function |
Sub | Declares a subprocedure |
Strings | |
Instr | Returns index of a string in another |
InStrB | Returns index of a string in another |
Len | Returns the length of a string |
LenB | Returns the length of a string |
Lcase | Converts a string to lowercase |
Ucase | Converts a string to uppercase |
Left | Returns the left portion of a string |
LeftB | Returns the left portion of a string |
Mid | Returns the mid portion of a string |
MidB | Returns the mid portion of a string |
Right | Returns the right portion of a string |
RightB | Returns the right portion of a string |
Space | Pads a string with spaces |
StrComp | Compares two strings |
String | Pads a string with a character |
Ltrim | Removes leading spaces from a string |
Rtrim | Removes trailing spaces from a string |
Trim | Removes leading and trailing spaces |
Variants | |
IsArray | Returns True if variable is an array |
IsDate | Returns True if variable is a date |
IsEmpty | Returns True if variable is empty |
IsNull | Returns True if variable is null. |
IsNumeric | Returns True if variable is a number |
IsObject | Returns True if variable is an object |
VarType | Indicates a variable's type |
VBScript leaves out a bunch of Visual Basic keywords such as DoEvents, Print, and Shell. You can't read or write files, either, and you can't do much graphical programming. This won't stop you from creating great Web pages with VBScript, though, because VBScript provides every feature you need to do just about anything you want on the Web page. For example, you can dynamically change the contents of the Web page itself and you can interact with every object on the Web page.
Don't look at the list of omitted keywords and features yet. You need to understand why Microsoft didn't include them so that you'll understand why each feature is on this list. Take a look:
Table C.1 describes each keyword or feature available in Visual Basic but omitted from VBScript. I've divided this table into broad categories, with each entry under a category describing a single feature. I've used Microsoft's categories so that you can keep the list on Microsoft's Web site in sync with this list.
NOTE: The Internet Explorer Script Error dialog box tells you that it found a statement in your script which couldn't interpret. I'm sure that you've seen error messages such as "Expected while or until" or nested comments that just don't make any sense. When VBScript encounters a keyword it doesn't recognize, it spews out all sorts of garbage like the previous example. It usually points to the offending keyword, however, by placing a caret (^) directly underneath it. The next time you get one of these unexplained errors, look up the keyword in Table C.2 to see if Microsoft omitted it from VBScript.
Keyword/Feature | Description |
Array Handling | |
Option Base | Declares default lower bound |
Arrays with lower bound <> 0 | All arrays must have 0 lower bound |
Clipboard | |
Clipboard object | Provides access to the clipboard |
Clear | Clears the contents of the clipboard |
GetFormat | Determines format of clipboard object |
GetData | Returns data from the clipboard |
SetData | Stores data in the clipboard |
GetText | Returns text from the clipboard |
SetText | Stores text in the clipboard |
Collection | |
Add | Adds an item to a collection |
Count | Returns number of items in collection |
Item | Returns an item from a collection |
Remove | Removes an item from a collection |
Access collections using ! character | Accesses a collection with ! |
Conditional Compilation | |
#Const | Defines a compiler constant |
#If...Then...#Else | Conditional compilation |
Constants/Literals | |
Const | Defines a constant |
All intrinsic | Predefined constants such as vbOK constants |
Exponent-based | Real numbers using exponents real number |
Trailing data type characters | Defines data types implicitly |
Control Flow | |
DoEvents | Yields execution to Windows |
GoSub...Return | Branches to a label in a procedure |
GoTo | Goes to a label in a procedure |
On Error GoTo | Goes to a label on an error |
On...GoSub | Branches to a label on an index |
On...GoTo | Goes to a label on an index |
Line numbers | Line numbers |
Line labels | Labels define GoTo/GoSub targets |
With...End With | Provides easy access to an object |
Conversion | |
Chr$ | Returns a character from an ASCII code |
Hex$ | Returns string hex from a number |
Oct$ | Returns string octal from a number |
Ccur | Converts expression to currency |
Cvar | Converts expression to a variant |
CVDate | Converts an expression to a date |
Format | Formats a string |
Format$ | Formats a string |
Str | Returns a string form of a number |
Str$ | Returns a string form of a number |
Val | Returns a number from a string |
Data Types | |
All intrinsic data types except variant | Data types such as Date |
Type...End Type | Defines user-defined data type |
Date/Time | |
Date statement | Returns the current date |
Time statement | Returns the current time |
Date$ | Returns the current date |
Time$ | Returns the current time |
Timer | Returns seconds elapsed since midnight |
DDE | |
LinkExecute | Sends command during DDE conversation |
LinkPoke | Sends data during a DDE conversation |
LinkRequest | Receives data during DDE conversation |
LinkSend | Sends data during a DDE conversation |
Debugging | |
Debug.Print | Prints to the debugging window |
End | Shuts down the application |
Stop | Stops the application |
Declaration | |
Declare | Declares a DLL |
Property Get | Defines a user-defined class |
Property Let | Defines a user-defined class |
Property Set | Defines a user-defined class |
Public | Declares a public variable |
Private | Declares a private variable |
ParamArray | Accepts a variable number of arguments |
Optional | Specifies an optional argument |
New | Creates a new object |
Error Handling | |
Erl | Returns the line number of an error |
Error | Returns an error message |
Error$ | Returns an error message |
On Error...Resume | Enables error handling |
Resume | Resumes after an error |
Resume Next | Resumes after an error |
File Input/Output | |
All | Opens, reads, writes, and closes files |
Financial | |
All financial | Financial function such as Rate functions. |
Graphics | |
Cls | Clears the screen |
Circle | Draws a circle |
Line | Draws a line |
Point | Draws a point |
Pset | Changes a point's color |
Scale | Defines the coordinate system |
Prints to a file | |
Spc | Position output using Print |
Tab | Inserts a tab character |
TextHeight | Returns height of a text string |
TextWidth | Returns width of a text string |
LoadPicture | Loads a picture from disk |
SavePicture | Saves a picture to disk |
QBColor | Returns an RGB color code |
RGB | Combines RGB color codes |
Manipulating Objects | |
Arrange | Arranges windows |
Zorder | Changes z-order of windows |
SetFocus | Sets focus to a window |
InputBox$ | Prompts the user for a string |
Drag | Begins a drag-and-drop operation |
Hide | Hides a form |
Show | Shows a form |
Load | Loads a form |
Unload | Unloads a form |
Move | Moves a form |
PrintForm | Prints a form |
Refresh | Repaints a form |
AddItem | Adds item to list box |
RemoveItem | Removes item from a list box |
Miscellaneous | |
Environ | Returns the user's environment |
Environ$ | Returns the user's environment |
SendKeys | Sends keystrokes to a window |
Command | Returns the command line parameters |
Command$ | Returns the command line parameters |
AppActivate | Activates an application's window |
Shell | Launches another program |
Beep | Beeps the speaker |
Object Manipulation | |
GetObject | Returns an OLE object from a file |
TypeOf | Returns the type of an object |
Operators | |
Like | Compares to strings |
Options | |
def type | Sets default data type for variables |
Option Base | Sets default lower bound for arrays |
Option Compare | Defines default comparison method |
Option Private | Defines default scope module |
Printing | |
TextHeight | Returns height of a text string |
TextWidth | Returns width of a text string |
EndDoc | Terminates a print operation |
NewPage | Ejects the current page |
PrintForm | Prints a form |
Strings | |
All fixed-length | Strings with a fixed length |
LCase$ | Converts a string to lowercase |
UCase$ | Converts a string to uppercase |
Lset | Left-aligns a string |
Rset | Right-aligns a string |
Space$ | Pads a string with spaces |
String$ | Pads a string with a character |
Format | Formats a string |
Format$ | Formats a string |
Left$ | Returns left portion of a string |
Mid$ | Returns middle portion of a string |
Right$ | Returns right portion of a string |
Mid Statement | Replaces a portion of a string |
Trim$ | Removes leading and trailing spaces |
LTrim$ | Removes leading spaces from a string |
RTrim$ | Removes trailing spaces from a string |
StrConv | Performs various conversions |
Using Classes | |
TypeName | Defines a user-defined class |
Optional Arguments | |
IsMissing | Indicates missing optional argument |
© Copyright, Macmillan Computer Publishing. All rights reserved.