Microsoft Visual Basic Scripting Edition, commonly known as VBScript, is a relative of the Visual Basic family, which includes the Microsoft Visual Basic Development System (the retail version of Visual Basic in its Enterprise, Professional, and Learning Editions) and Visual Basic for Applications (the language component of Visual Basic, which is included in the individual applications within Microsoft Office and Microsoft Project, as well as in a host of third-party applications).
VBScript is, for the most part, a subset of the Visual Basic for Applications programming language. It was developed so that the millions of Visual Basic developers could leverage their knowledge of VB/VBA Internet scripting. One of the strengths of VBScript is that it uses the same familiar and easy syntax that has made VBA so popular as a programming language, making it very easy to learn for those who have some Visual Basic background. In addition, VBScript is fairly easy to learn for those without any programming experience.
Ironically, VBScript started as a client-side scripting language to create interactive web pages, but in this area it had a major liability: it was and is not supported by Netscape Navigator. Instead, the two major web browsers on the market, Navigator and Microsoft Internet Explorer, both supported a common scripting language, JavaScript, which became the de facto standard for client-side scripting. Despite its failure in this area, however, VBScript rapidly became the major scripting language in three other areas:
Active Server Pages (ASP) applications
Outlook forms
Windows Script Host (WSH) scripts
Version 1.0 of VBScript was initially introduced in Microsoft Internet Explorer (MSIE) 3.0, which was released in 1996. Its intended use at that point was to allow web page developers to enhance their pages through client-side scripting. In contrast to plain HTML, which supported the creation of only static web pages, the combination of HTML and client-side script allows the creation of web pages that are both interactive and responsive to the user. For instance, a script could allow the web page to display extended information about hyperlinks as the user’s mouse passes over them, or it could be used to validate data entered by the user without submitting it to the server. A script could even be used to generate a web page on the fly, without using any “hard-coded” HTML. The only limitation to VBScript as a language for client-side scripting was that VBScript could be used only inside of Internet Explorer, the only browser to support it, and thus was suitable only for use on corporate intranets that had standardized on MSIE. Using VBScript for client-side scripting on MSIE is discussed in Chapter 8.
Version 2.0 of VBScript was introduced in Internet Information Server
(IIS) 3.0 in 1997. The most notable additions to the language were
“web-friendly” language elements (such as lightweight
Format...
functions and the
Filter
, InStrRev
,
Reverse
, and Join
functions) that in most cases were incorporated into the VBA language
only with the release of VBA 6.0. In addition, VBScript 2.0 added
support for a number of intrinsic constants to make code more
readable and also implemented the Const
statement
to allow user-defined constants. Finally, the
CreateObject
and GetObject
functions were added to instantiate external COM objects; these
functions, which are inoperative in a client-side scripting
environment, are essential for supporting components that are capable
of extending a scripted server-side application.
This new version of VBScript was released with IIS to support server-side scripting using ASP. ASP is itself the object model exposed by IIS that allows your script to access information about the client’s request and to write to the server’s output stream. An ASP application consists of conventional web pages (that is, HTML and possibly client-side script written in any language) along with script that executes on the server. The output of an ASP script most commonly is HTML, which is simply inserted into the output stream returned by the server in response to a client request. This makes ASP important for several reasons. First, it can be used to produce output that is customized for the browser on which it’s displayed. Secondly, it provides a very strong web application environment, and particularly one that takes advantage of back-end processing. Along with ASP, Microsoft introduced ActiveX Data Objects (ADO) as its primary data access technology. Developing ASP applications with VBScript is discussed in Chapter 5.
Although IIS itself is language-independent and supports a number of available scripting languages, it is precisely in this area—in scripting for ASP—that VBScript quickly found its major area of application.
Version 3.0 of VBScript, which was released in 1998, had no new language features. Nevertheless, it was significant for marking the spread of VBScript beyond a scripted web environment. Besides IIS Version 4.0 and MSIE Version 4.0, VBScript was now incorporated into Outlook 98 (an interim release of Outlook that was developed out of sync from the other applications in Microsoft Office), and Windows Script Host 1.0.
Windows Script Host (WSH), which first appeared in the Windows NT 4 Option Pack, exposes some core system resources (like the registry, the network, printers, and the filesystem) and allows system administrators to write scripts that access or control them using VBScript, JavaScript, or any of a number of other scripting languages. The promise here is that administrators will be able to write sophisticated scripts to handle typical administrative tasks. WSH is considerably more powerful than typical Windows Shell scripting, and is also available in Windows 98. Microsoft has built the WSH to help companies address the growing concern of the total cost of administration. In addition, WSH appeals to power users who prefer writing a simple script rather than performing a repetitive task multiple times. Scripting for WSH is discussed in Chapter 7.
Microsoft Outlook was originally released in Office 97 as Microsoft’s entry into the personal information manager/workgroup messaging market. Outlook featured a number of forms to handle standard MAPI message types (such as messages, contacts, tasks, notes, and appointments) out of the box. However, VBScript made it possible to design new forms and customize their behavior. Although Outlook’s latest release, Outlook 2000, includes support for VBA, VBScript remains the programming language for Outlook 2000 forms. Developing Outlook forms with VBScript is covered in Chapter 6.
Version 4.0 of VBScript was also released as part of Visual Studio
6.0 in 1998. As in Version 3.0, no new language features were
present. What was different was the Microsoft Scripting
Runtime Library (scrrun.dll
),
which now included a File System object model as well as the
Dictionary object introduced with VBScript 2.0. The addition of the
object model made the library an essential component in any scripted
environment.
Version 5.0, shipped with MSIE 5.0 and IIS 5.0 (which shipped with
Windows 2000), added a number of new language enhancements, including
support for scripted classes using the Class...End Class
construct, support for regular expression searches
through the RegExp object, and the ability to dynamically build
expressions to be evaluated using the Eval
function or executed using the Execute method.
As you can see, even though VBScript’s advent as a client-side scripting language was largely unsuccessful, Microsoft remained committed to VBScript as a “lightweight” form of VBA and continued to move the language forward. As a result, it came to be used in a number of environments other than client-side scripts, and in fact, has become one of the major scripting languages in use today.
Get VBScript in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.