Microsoft Visual Basic Scripting Edition 是程序開發(fā)語言 Visual Basic 家族的最新成員,它將靈活的 Script 應用于更廣泛的領域,包括 Microsoft Internet Explorer 中的 Web 客戶機 Script 和 Microsoft Internet Information Server 中的 Web 服務器 Script。 易學易用
如果您已了解 Visual Basic 或 Visual Basic for Applications,就會很快熟悉 VBScript。即使您沒有學過 Visual Basic,只要學會 VBScript,就能夠使用所有的 Visual Basic 語言進行程序設計。雖然您可以從本教程的幾個 Web 頁面中學習 VBscript,但是本教程并沒有告訴您如何編程。要學習編程,請閱讀由 Microsoft Press 出版的《Step by Step》。
ActiveX Script
VBScript 使用 ActiveX™ Script 與宿主應用程序?qū)υ挕J褂?ActiveX Script,瀏覽器和其他宿主應用程序不再需要每個 Script 部件的特殊集成代碼。ActiveX Script 使宿主可以編譯 Script、獲取和調(diào)用入口點及管理開發(fā)者可用的命名空間。通過 ActiveX Script,語言廠商可以建立標準 Script 運行時語言。Microsoft 將提供 VBScript 的運行時支持。Microsoft 正在與多個 Internet 組一起定義 ActiveX Script 標準以使 Script 引擎可以互換。 ActiveX Script 可用在 Microsoft® Internet Explorer 和 Microsoft® Internet Information Server 中。
其他應用程序和瀏覽器中的 VBScript
作為開發(fā)者,您可以在您的產(chǎn)品中免費使用 VBScript 源實現(xiàn)程序。Microsoft 為 32 位 Windows® API、16 位 Windows API 和 Macintosh® 提供 VBscript 的二進制實現(xiàn)程序。VBScript 與 World Wide Web 瀏覽器集成在一起。VBScript 和 ActiveX Script 也可以在其他應用程序中作為普通 Script 語言使用。
什么是 VBScript 數(shù)據(jù)類型?
VBScript 只有一種數(shù)據(jù)類型,稱為 Variant。Variant 是一種特殊的數(shù)據(jù)類型,根據(jù)使用的方式,它可以包含不同類別的信息。因為 Variant 是 VBScript 中唯一的數(shù)據(jù)類型,所以它也是 VBScript 中所有函數(shù)的返回值的數(shù)據(jù)類型。
最簡單的 Variant 可以包含數(shù)字或字符串信息。Variant 用于數(shù)字上下文中時作為數(shù)字處理,用于字符串上下文中時作為字符串處理。這就是說,如果使用看起來象是數(shù)字的數(shù)據(jù),則 VBScript 會假定其為數(shù)字并以適用于數(shù)字的方式處理。與此類似,如果使用的數(shù)據(jù)只可能是字符串,則 VBScript 將按字符串處理。當然,也可以將數(shù)字包含在引號 (" ") 中使其成為字符串。
Variant 子類型
除簡單數(shù)字或字符串以外,Variant 可以進一步區(qū)分數(shù)值信息的特定含義。例如使用數(shù)值信息表示日期或時間。此類數(shù)據(jù)在與其他日期或時間數(shù)據(jù)一起使用時,結(jié)果也總是表示為日期或時間。當然,從 Boolean 值到浮點數(shù),數(shù)值信息是多種多樣的。Variant 包含的數(shù)值信息類型稱為子類型。大多數(shù)情況下,可將所需的數(shù)據(jù)放進 Variant 中,而 Variant 也會按照最適用于其包含的數(shù)據(jù)的方式進行操作。
下表顯示 Variant 包含的數(shù)據(jù)子類型:
子類型 描述
Empty 未初始化的 Variant。對于數(shù)值變量,值為 0;對于字符串變量,值為零長度字符串 ("")。
Null 不包含任何有效數(shù)據(jù)的 Variant。
Boolean 包含 True 或 False。
Byte 包含 0 到 255 之間的整數(shù)。
Integer 包含 -32,768 到 32,767 之間的整數(shù)。
Currency -922,337,203,685,477.5808 到 922,337,203,685,477.5807。
Long 包含 -2,147,483,648 到 2,147,483,647 之間的整數(shù)。
Single 包含單精度浮點數(shù),負數(shù)范圍從 -3.402823E38 到 -1.401298E-45,正數(shù)范圍從 1.401298E-45 到 3.402823E38。
Double 包含雙精度浮點數(shù),負數(shù)范圍從 -1.79769313486232E308 到 -4.94065645841247E-324,正數(shù)范圍從 4.94065645841247E-324 到 1.79769313486232E308。
Date (Time) 包含表示日期的數(shù)字,日期范圍從公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日。
String 包含變長字符串,最大長度可為 20 億個字符。
Object 包含對象。
Error 包含錯誤號。
您可以使用轉(zhuǎn)換函數(shù)來轉(zhuǎn)換數(shù)據(jù)的子類型。另外,可使用 VarType 函數(shù)返回數(shù)據(jù)的 Variant 子類型。
什么是變量?
變量是一種使用方便的占位符,用于引用計算機內(nèi)存地址,該地址可以存儲 Script 運行時可更改的程序信息。例如,可以創(chuàng)建一個名為 ClickCount 的變量來存儲用戶單擊 Web 頁面上某個對象的次數(shù)。使用變量并不需要了解變量在計算機內(nèi)存中的地址,只要通過變量名引用變量就可以查看或更改變量的值。在 VBScript 中只有一個基本數(shù)據(jù)類型,即 Variant,因此所有變量的數(shù)據(jù)類型都是 Variant。
聲明變量
聲明變量的一種方式是使用 Dim 語句、Public 語句和 Private 語句在 Script 中顯式聲明變量。例如:
Dim DegreesFahrenheit
聲明多個變量時,使用逗號分隔變量。例如:
Dim Top, Bottom, Left, Right
另一種方式是通過直接在 Script 中使用變量名這一簡單方式隱式聲明變量。這通常不是一個好習慣,因為這樣有時會由于變量名被拼錯而導致在運行 Script 時出現(xiàn)意外的結(jié)果。因此,最好使用 Option Explicit 語句顯式聲明所有變量,并將其作為 Script 的第一條語句。
命名規(guī)則
變量命名必須遵循 VBScript 的標準命名規(guī)則。變量命名必須遵循:
第一個字符必須是字母。
不能包含嵌入的句點。
長度不能超過 255 個字符。
在被聲明的作用域內(nèi)必須唯一。
變量的作用域與存活期
變量的作用域由聲明它的位置決定。如果在過程中聲明變量,則只有該過程中的代碼可以訪問或更改變量值,此時變量具有局部作用域并被稱為過程級變量。如果在過程之外聲明變量,則該變量可以被 Script 中所有過程所識別,稱為 Script 級變量,具有 Script 級作用域。
變量存在的時間稱為存活期。Script 級變量的存活期從被聲明的一刻起,直到 Script 運行結(jié)束。對于過程級變量,其存活期僅是該過程運行的時間,該過程結(jié)束后,變量隨之消失。在執(zhí)行過程時,局部變量是理想的臨時存儲空間。可以在不同過程中使用同名的局部變量,這是因為每個局部變量只被聲明它的過程識別。
給變量賦值
創(chuàng)建如下形式的表達式給變量賦值:變量在表達式左邊,要賦的值在表達式右邊。例如:
B = 200
標量變量和數(shù)組變量
多數(shù)情況下,只需為聲明的變量賦一個值。只包含一個值的變量被稱為標量變量。有時候,將多個相關值賦給一個變量更為方便,因此可以創(chuàng)建包含一系列值的變量,稱為數(shù)組變量。數(shù)組變量和標量變量是以相同的方式聲明的,唯一的區(qū)別是聲明數(shù)組變量時變量名后面帶有括號 ( )。下例聲明了一個包含 11 個元素的一維數(shù)組:
Dim A(10)
雖然括號中顯示的數(shù)字是 10,但由于在 VBScript 中所有數(shù)組都是基于 0 的,所以這個數(shù)組實際上包含 11 個元素。在基于 0 的數(shù)組中,數(shù)組元素的數(shù)目總是括號中顯示的數(shù)目加 1。這種數(shù)組被稱為固定大小的數(shù)組。
在數(shù)組中使用索引為數(shù)組的每個元素賦值。從 0 到 10,將數(shù)據(jù)賦給數(shù)組的元素,如下所示:
A(0) = 256
A(1) = 324
A(2) = 100
. . .
A(10) = 55
與此類似,使用索引可以檢索到所需的數(shù)組元素的數(shù)據(jù)。例如:
. . .
SomeVariable = A(8)
. . .
數(shù)組并不僅限于一維。數(shù)組的維數(shù)最大可以為 60(盡管大多數(shù)人不能理解超過 3 或 4 的維數(shù))。聲明多維數(shù)組時用逗號分隔括號中每個表示數(shù)組大小的數(shù)字。在下例中,MyTable 變量是一個有 6 行和 11 列的二維數(shù)組:
Dim MyTable(5, 10)
在二維數(shù)組中,括號中第一個數(shù)字表示行的數(shù)目,第二個數(shù)字表示列的數(shù)目。
也可以聲明動態(tài)數(shù)組,即在運行 Script 時大小發(fā)生變化的數(shù)組。對數(shù)組的最初聲明使用 Dim 語句或 ReDim 語句。但是對于動態(tài)數(shù)組,括號中不包含任何數(shù)字。例如:
Dim MyArray()
ReDim AnotherArray()
要使用動態(tài)數(shù)組,必須隨后使用 ReDim 確定維數(shù)和每一維的大小。在下例中,ReDim 將動態(tài)數(shù)組的初始大小設置為 25,而后面的 ReDim 語句將數(shù)組的大小重新調(diào)整為 30,同時使用 Preserve 關鍵字在重新調(diào)整大小時保留數(shù)組的內(nèi)容。
ReDim MyArray(25)
. . .
ReDim Preserve MyArray(30)
重新調(diào)整動態(tài)數(shù)組大小的次數(shù)是沒有任何限制的,但是應注意:將數(shù)組的大小調(diào)小時,將會丟失被刪除元素的數(shù)據(jù)。