VBScript微軟官方教程教學(xué)教材_第1頁
VBScript微軟官方教程教學(xué)教材_第2頁
VBScript微軟官方教程教學(xué)教材_第3頁
VBScript微軟官方教程教學(xué)教材_第4頁
VBScript微軟官方教程教學(xué)教材_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Good is good, but better carries it.精益求精,善益求善。VBScript微軟官方教程VBScript微軟官方教程MicrosoftVisualBasicScriptingEdition是程序開發(fā)語言VisualBasic家族的最新成員,它將靈活的Script應(yīng)用于更廣泛的領(lǐng)域,包括MicrosoftInternetExplorer中的Web客戶機(jī)Script和MicrosoftInternetInformationServer中的Web服務(wù)器Script。易學(xué)易用如果您已了解VisualBasic或VisualBasicforApplications,就會(huì)很

2、快熟悉VBScript。即使您沒有學(xué)過VisualBasic,只要學(xué)會(huì)VBScript,就能夠使用所有的VisualBasic語言進(jìn)行程序設(shè)計(jì)。雖然您可以從本教程的幾個(gè)Web頁面中學(xué)習(xí)VBscript,但是本教程并沒有告訴您如何編程。要學(xué)習(xí)編程,請(qǐng)閱讀由MicrosoftPress出版的StepbyStep。ActiveXScriptVBScript使用ActiveXScript與宿主應(yīng)用程序?qū)υ挕J褂肁ctiveXScript,瀏覽器和其他宿主應(yīng)用程序不再需要每個(gè)Script部件的特殊集成代碼。ActiveXScript使宿主可以編譯Script、獲取和調(diào)用入口點(diǎn)及管理開發(fā)者可用的命名空間。

3、通過ActiveXScript,語言廠商可以建立標(biāo)準(zhǔn)Script運(yùn)行時(shí)語言。Microsoft將提供VBScript的運(yùn)行時(shí)支持。Microsoft正在與多個(gè)Internet組一起定義ActiveXScript標(biāo)準(zhǔn)以使Script引擎可以互換。ActiveXScript可用在MicrosoftInternetExplorer和MicrosoftInternetInformationServer中。其他應(yīng)用程序和瀏覽器中的VBScript作為開發(fā)者,您可以在您的產(chǎn)品中免費(fèi)使用VBScript源實(shí)現(xiàn)程序。Microsoft為32位WindowsAPI、16位WindowsAPI和Macintosh

4、提供VBscript的二進(jìn)制實(shí)現(xiàn)程序。VBScript與WorldWideWeb瀏覽器集成在一起。VBScript和ActiveXScript也可以在其他應(yīng)用程序中作為普通Script語言使用。SCRIPT元素用于將VBScript代碼添加到HTML頁面中。標(biāo)記VBScript代碼寫在成對(duì)的標(biāo)記之間。例如,以下代碼為一個(gè)測試傳遞日期的過程:2EndFunction-代碼的開始和結(jié)束部分都有標(biāo)記。LANGUAGE屬性用于指定所使用的Script語言。由于瀏覽器能夠使用多種Script語言,所以必須在此指定所使用的Script語言。注意CanDeliver函數(shù)被嵌入在注釋標(biāo)記()中。這樣能夠避免不

5、能識(shí)別標(biāo)記的瀏覽器將代碼顯示在頁面中。因?yàn)橐陨鲜纠且粋€(gè)通用函數(shù)(不依賴于任何窗體控件),所以可以將其包含在頁面的HEAD部分:訂購2EndFunction-.SCRIPT塊可以出現(xiàn)在HTML頁面的任何地方(BODY或HEAD部分之中)。然而最好將所有的一般目標(biāo)Script代碼放在HEAD部分中,以使所有Script代碼集中放置。這樣可以確保在BODY部分調(diào)用代碼之前所有Script代碼都被讀取并解碼。上述規(guī)則的一個(gè)值得注意的例外情況是,在窗體中提供內(nèi)部代碼以響應(yīng)窗體中對(duì)象的事件。例如,以下示例在窗體中嵌入Script代碼以響應(yīng)窗體中按鈕的單擊事件:測試按鈕事件MsgBox按鈕被單擊!大多數(shù)S

6、cript代碼在Sub或Function過程中,僅在其他代碼要調(diào)用它時(shí)執(zhí)行。然而,也可以將VBScript代碼放在過程之外、SCRIPT塊之中。這類代碼僅在HTML頁面加載時(shí)執(zhí)行一次。這樣就可以在加載Web頁面時(shí)初始化數(shù)據(jù)或動(dòng)態(tài)地改變頁面的外觀。什么是VBScript數(shù)據(jù)類型?VBScript只有一種數(shù)據(jù)類型,稱為Variant。Variant是一種特殊的數(shù)據(jù)類型,根據(jù)使用的方式,它可以包含不同類別的信息。因?yàn)閂ariant是VBScript中唯一的數(shù)據(jù)類型,所以它也是VBScript中所有函數(shù)的返回值的數(shù)據(jù)類型。最簡單的Variant可以包含數(shù)字或字符串信息。Variant用于數(shù)字上下文中時(shí)

7、作為數(shù)字處理,用于字符串上下文中時(shí)作為字符串處理。這就是說,如果使用看起來象是數(shù)字的數(shù)據(jù),則VBScript會(huì)假定其為數(shù)字并以適用于數(shù)字的方式處理。與此類似,如果使用的數(shù)據(jù)只可能是字符串,則VBScript將按字符串處理。當(dāng)然,也可以將數(shù)字包含在引號(hào)()中使其成為字符串。Variant子類型除簡單數(shù)字或字符串以外,Variant可以進(jìn)一步區(qū)分?jǐn)?shù)值信息的特定含義。例如使用數(shù)值信息表示日期或時(shí)間。此類數(shù)據(jù)在與其他日期或時(shí)間數(shù)據(jù)一起使用時(shí),結(jié)果也總是表示為日期或時(shí)間。當(dāng)然,從Boolean值到浮點(diǎn)數(shù),數(shù)值信息是多種多樣的。Variant包含的數(shù)值信息類型稱為子類型。大多數(shù)情況下,可將所需的數(shù)據(jù)放進(jìn)V

8、ariant中,而Variant也會(huì)按照最適用于其包含的數(shù)據(jù)的方式進(jìn)行操作。下表顯示Variant包含的數(shù)據(jù)子類型:子類型描述Empty未初始化的Variant。對(duì)于數(shù)值變量,值為0;對(duì)于字符串變量,值為零長度字符串()。Null不包含任何有效數(shù)據(jù)的Variant。Boolean包含HYPERLINK/china/vbscript/vbslang/vskeyTrue.htmTrue或HYPERLINK/china/vbscript/vbslang/vskeyFalse.htmFalse。Byte包含0到255之間的整數(shù)。Integer包含-32,768到32,767之間的整數(shù)。Currency

9、-922,337,203,685,477.5808到922,337,203,685,477.5807。Long包含-2,147,483,648到2,147,483,647之間的整數(shù)。Single包含單精度浮點(diǎn)數(shù),負(fù)數(shù)范圍從-3.402823E38到-1.401298E-45,正數(shù)范圍從1.401298E-45到3.402823E38。Double包含雙精度浮點(diǎn)數(shù),負(fù)數(shù)范圍從-1.79769313486232E308到-4.94065645841247E-324,正數(shù)范圍從4.94065645841247E-324到1.79769313486232E308。Date(Time)包含表示日期的數(shù)字

10、,日期范圍從公元100年1月1日到公元9999年12月31日。String包含變長字符串,最大長度可為20億個(gè)字符。Object包含對(duì)象。Error包含錯(cuò)誤號(hào)。您可以使用HYPERLINK/china/vbscript/vbslang/vsidxconversion.htm轉(zhuǎn)換函數(shù)來轉(zhuǎn)換數(shù)據(jù)的子類型。另外,可使用HYPERLINK/china/vbscript/vbslang/vsfctVarType.htmVarType函數(shù)返回?cái)?shù)據(jù)的Variant子類型。什么是變量?變量是一種使用方便的占位符,用于引用計(jì)算機(jī)內(nèi)存地址,該地址可以存儲(chǔ)Script運(yùn)行時(shí)可更改的程序信息。例如,可以創(chuàng)建一個(gè)名為C

11、lickCount的變量來存儲(chǔ)用戶單擊Web頁面上某個(gè)對(duì)象的次數(shù)。使用變量并不需要了解變量在計(jì)算機(jī)內(nèi)存中的地址,只要通過變量名引用變量就可以查看或更改變量的值。在VBScript中只有一個(gè)基本數(shù)據(jù)類型,即HYPERLINK/china/vbscript/vbstutor/vbsdatatype.htmVariant,因此所有變量的數(shù)據(jù)類型都是Variant。聲明變量聲明變量的一種方式是使用HYPERLINK/china/vbscript/vbslang/vsstmDim.htmDim語句、HYPERLINK/china/vbscript/vbslang/vsstmPublic.htmPubli

12、c語句和HYPERLINK/china/vbscript/vbslang/vsstmPrivate.htmPrivate語句在Script中顯式聲明變量。例如:DimDegreesFahrenheit聲明多個(gè)變量時(shí),使用逗號(hào)分隔變量。例如:DimTop,Bottom,Left,Right另一種方式是通過直接在Script中使用變量名這一簡單方式隱式聲明變量。這通常不是一個(gè)好習(xí)慣,因?yàn)檫@樣有時(shí)會(huì)由于變量名被拼錯(cuò)而導(dǎo)致在運(yùn)行Script時(shí)出現(xiàn)意外的結(jié)果。因此,最好使用HYPERLINK/china/vbscript/vbslang/vsstmOptionExplicit.htmOptionExpl

13、icit語句顯式聲明所有變量,并將其作為Script的第一條語句。命名規(guī)則變量命名必須遵循VBScript的標(biāo)準(zhǔn)命名規(guī)則。變量命名必須遵循:第一個(gè)字符必須是字母。不能包含嵌入的句點(diǎn)。長度不能超過255個(gè)字符。在被聲明的作用域內(nèi)必須唯一。變量的作用域與存活期變量的作用域由聲明它的位置決定。如果在過程中聲明變量,則只有該過程中的代碼可以訪問或更改變量值,此時(shí)變量具有局部HYPERLINK/china/vbscript/vbslang/glossary.htm#defScoping作用域并被稱為HYPERLINK/china/vbscript/vbslang/glossary.htm#defProc

14、Level過程級(jí)變量。如果在過程之外聲明變量,則該變量可以被Script中所有過程所識(shí)別,稱為HYPERLINK/china/vbscript/vbslang/glossary.htm#defScriptLevelScript級(jí)變量,具有Script級(jí)作用域。變量存在的時(shí)間稱為存活期。Script級(jí)變量的存活期從被聲明的一刻起,直到Script運(yùn)行結(jié)束。對(duì)于過程級(jí)變量,其存活期僅是該過程運(yùn)行的時(shí)間,該過程結(jié)束后,變量隨之消失。在執(zhí)行過程時(shí),局部變量是理想的臨時(shí)存儲(chǔ)空間。可以在不同過程中使用同名的局部變量,這是因?yàn)槊總€(gè)局部變量只被聲明它的過程識(shí)別。給變量賦值創(chuàng)建如下形式的表達(dá)式給變量賦值:變量在

15、表達(dá)式左邊,要賦的值在表達(dá)式右邊。例如:B=200標(biāo)量變量和數(shù)組變量多數(shù)情況下,只需為聲明的變量賦一個(gè)值。只包含一個(gè)值的變量被稱為標(biāo)量變量。有時(shí)候,將多個(gè)相關(guān)值賦給一個(gè)變量更為方便,因此可以創(chuàng)建包含一系列值的變量,稱為數(shù)組變量。數(shù)組變量和標(biāo)量變量是以相同的方式聲明的,唯一的區(qū)別是聲明數(shù)組變量時(shí)變量名后面帶有括號(hào)()。下例聲明了一個(gè)包含11個(gè)元素的一維數(shù)組:DimA(10)雖然括號(hào)中顯示的數(shù)字是10,但由于在VBScript中所有HYPERLINK/china/vbscript/vbslang/glossary.htm#defArray數(shù)組都是基于0的,所以這個(gè)數(shù)組實(shí)際上包含11個(gè)元素。在基于0

16、的數(shù)組中,數(shù)組元素的數(shù)目總是括號(hào)中顯示的數(shù)目加1。這種數(shù)組被稱為固定大小的數(shù)組。在數(shù)組中使用索引為數(shù)組的每個(gè)元素賦值。從0到10,將數(shù)據(jù)賦給數(shù)組的元素,如下所示:A(0)=256A(1)=324A(2)=100.A(10)=55與此類似,使用索引可以檢索到所需的數(shù)組元素的數(shù)據(jù)。例如:.SomeVariable=A(8).數(shù)組并不僅限于一維。數(shù)組的維數(shù)最大可以為60(盡管大多數(shù)人不能理解超過3或4的維數(shù))。聲明多維數(shù)組時(shí)用逗號(hào)分隔括號(hào)中每個(gè)表示數(shù)組大小的數(shù)字。在下例中,MyTable變量是一個(gè)有6行和11列的二維數(shù)組:DimMyTable(5,10)在二維數(shù)組中,括號(hào)中第一個(gè)數(shù)字表示行的數(shù)目,第

17、二個(gè)數(shù)字表示列的數(shù)目。也可以聲明動(dòng)態(tài)數(shù)組,即在運(yùn)行Script時(shí)大小發(fā)生變化的數(shù)組。對(duì)數(shù)組的最初聲明使用Dim語句或HYPERLINK/china/vbscript/vbslang/vsstmReDim.htmReDim語句。但是對(duì)于動(dòng)態(tài)數(shù)組,括號(hào)中不包含任何數(shù)字。例如:DimMyArray()ReDimAnotherArray()要使用動(dòng)態(tài)數(shù)組,必須隨后使用ReDim確定維數(shù)和每一維的大小。在下例中,ReDim將動(dòng)態(tài)數(shù)組的初始大小設(shè)置為25,而后面的ReDim語句將數(shù)組的大小重新調(diào)整為30,同時(shí)使用Preserve關(guān)鍵字在重新調(diào)整大小時(shí)保留數(shù)組的內(nèi)容。ReDimMyArray(25).ReD

18、imPreserveMyArray(30)重新調(diào)整動(dòng)態(tài)數(shù)組大小的次數(shù)是沒有任何限制的,但是應(yīng)注意:將數(shù)組的大小調(diào)小時(shí),將會(huì)丟失被刪除元素的數(shù)據(jù)。什么是常數(shù)?HYPERLINK/china/vbscript/vbslang/glossary.htm#defConstant常數(shù)是具有一定含義的名稱,用于代替數(shù)字或字符串,其值從不改變。VBScript定義了許多HYPERLINK/china/vbscript/vbslang/glossary.htm#defIntrinsicConstant固有常數(shù)。詳細(xì)信息,請(qǐng)參閱HYPERLINK/china/vbscript/vbslang/vbsTOC.ht

19、mVBScript語言參考。創(chuàng)建常數(shù)您可以使用HYPERLINK/china/vbscript/vbslang/vsstmConst.htmConst語句在VBScript中創(chuàng)建用戶自定義常數(shù)。使用Const語句可以創(chuàng)建名稱具有一定含義的字符串型或數(shù)值型常數(shù),并給它們賦原義值。例如:ConstMyString=這是一個(gè)字符串。ConstMyAge=49請(qǐng)注意字符串文字包含在兩個(gè)引號(hào)()之間。這是區(qū)分字符串型常數(shù)和數(shù)值型常數(shù)的最明顯的方法。HYPERLINK/china/vbscript/vbslang/glossary.htm#defDateLiteral日期文字和時(shí)間文字包含在兩個(gè)井號(hào)(#)

20、之間。例如:ConstCutoffDate=#6-1-97#最好采用一個(gè)命名方案以區(qū)分常數(shù)和變量。這樣可以避免在運(yùn)行Script時(shí)對(duì)常數(shù)重新賦值。例如,可以使用“vb”或“con”作常數(shù)名的前綴,或?qū)⒊?shù)名的所有字母大寫。將常數(shù)和變量區(qū)分開可以在開發(fā)復(fù)雜的Script時(shí)避免混亂。VBScript有一套完整的運(yùn)算符,包括HYPERLINK/china/vbscript/vbslang/vsidxArithmetic.htm算術(shù)運(yùn)算符、HYPERLINK/china/vbscript/vbslang/vsgrpComparison.htm比較運(yùn)算符、HYPERLINK/china/vbscript

21、/vbslang/vsidxConcatenation.htm連接運(yùn)算符和HYPERLINK/china/vbscript/vbslang/vsidxLogical.htm邏輯運(yùn)算符。運(yùn)算符優(yōu)先級(jí)當(dāng)表達(dá)式包含多個(gè)運(yùn)算符時(shí),將按預(yù)定順序計(jì)算每一部分,這個(gè)順序被稱為運(yùn)算符優(yōu)先級(jí)??梢允褂美ㄌ?hào)越過這種優(yōu)先級(jí)順序,強(qiáng)制首先計(jì)算表達(dá)式的某些部分。運(yùn)算時(shí),總是先執(zhí)行括號(hào)中的運(yùn)算符,然后再執(zhí)行括號(hào)外的運(yùn)算符。但是,在括號(hào)中仍遵循標(biāo)準(zhǔn)運(yùn)算符優(yōu)先級(jí)。當(dāng)表達(dá)式包含多種運(yùn)算符時(shí),首先計(jì)算算術(shù)運(yùn)算符,然后計(jì)算比較運(yùn)算符,最后計(jì)算邏輯運(yùn)算符。所有比較運(yùn)算符的優(yōu)先級(jí)相同,即按照從左到右的順序計(jì)算比較運(yùn)算符。算術(shù)運(yùn)算符和邏

22、輯運(yùn)算符的優(yōu)先級(jí)如下所示:算術(shù)運(yùn)算符比較運(yùn)算符邏輯運(yùn)算符描述符號(hào)描述符號(hào)描述符號(hào)HYPERLINK/china/vbscript/vbslang/vsoprExponentiation.htm求冪HYPERLINK/china/vbscript/vbslang/vsgrpComparison.htm等于=HYPERLINK/china/vbscript/vbslang/vsoprNot.htm邏輯非NotHYPERLINK/china/vbscript/vbslang/vsoprSubtract.htm負(fù)號(hào)-HYPERLINK/china/vbscript/vbslang/vsgrpCompa

23、rison.htm不等于HYPERLINK/china/vbscript/vbslang/vsoprAnd.htm邏輯與AndHYPERLINK/china/vbscript/vbslang/vsoprMultiply.htm乘*HYPERLINK/china/vbscript/vbslang/vsgrpComparison.htm小于HYPERLINK/china/vbscript/vbslang/vsoprXor.htm邏輯異或XorHYPERLINK/china/vbscript/vbslang/vsoprIntegerDivide.htm整除HYPERLINK/china/vbscri

24、pt/vbslang/vsgrpComparison.htm小于等于=HYPERLINK/china/vbscript/vbslang/vsoprImp.htm邏輯隱含ImpHYPERLINK/china/vbscript/vbslang/vsoprAdd.htm加+HYPERLINK/china/vbscript/vbslang/vsoprIs.htm對(duì)象引用比較IsHYPERLINK/china/vbscript/vbslang/vsoprSubtract.htm減-HYPERLINK/china/vbscript/vbslang/vsoprConcatenation.htm字符串連接&當(dāng)

25、乘號(hào)與除號(hào)同時(shí)出現(xiàn)在一個(gè)表達(dá)式中時(shí),按從左到右的順序計(jì)算乘、除運(yùn)算符。同樣當(dāng)加與減同時(shí)出現(xiàn)在一個(gè)表達(dá)式中時(shí),按從左到右的順序計(jì)算加、減運(yùn)算符。字符串連接(&)運(yùn)算符不是算術(shù)運(yùn)算符,但是在優(yōu)先級(jí)順序中,它排在所有算術(shù)運(yùn)算符之后和所有比較運(yùn)算符之前。Is運(yùn)算符是對(duì)象引用比較運(yùn)算符。它并不比較對(duì)象或?qū)ο蟮闹?,而只是進(jìn)行檢查,判斷兩個(gè)對(duì)象引用是否引用同一個(gè)對(duì)象??刂瞥绦驁?zhí)行使用條件語句和循環(huán)語句可以控制Script的流程。使用條件語句可以編寫進(jìn)行判斷和重復(fù)操作的VBScript代碼。在VBScript中可使用以下條件語句:HYPERLINK/china/vbscript/vbslang/vsstmIf

26、.htmIf.Then.Else語句HYPERLINK/china/vbscript/vbslang/vsstmSelectCase.htmSelectCase語句使用If.Then.Else進(jìn)行判斷If.Then.Else語句用于計(jì)算條件是否為True或False,并且根據(jù)計(jì)算結(jié)果指定要運(yùn)行的語句。通常,條件是使用比較運(yùn)算符對(duì)值或變量進(jìn)行比較的表達(dá)式。有關(guān)比較運(yùn)算符的詳細(xì)信息,請(qǐng)參閱HYPERLINK/china/vbscript/vbslang/vsgrpComparison.htm比較運(yùn)算符。If.Then.Else語句可以按照需要進(jìn)行嵌套。條件為True時(shí)運(yùn)行語句要在條件為True時(shí)運(yùn)

27、行單行語句,可使用If.Then.Else語句的單行語法。下例示范了單行語法。請(qǐng)注意此例省略了關(guān)鍵字Else。SubFixDate()DimmyDatemyDate=#2/13/95#IfmyDate10myNum=myNum-1counter=counter+1LoopMsgBox循環(huán)重復(fù)了&counter&次。EndSubSubChkLastWhile()Dimcounter,myNumcounter=0myNum=9DomyNum=myNum-1counter=counter+1LoopWhilemyNum10MsgBox循環(huán)重復(fù)了&counter&次。EndSub重復(fù)執(zhí)行語句直到條件變

28、為TrueUntil關(guān)鍵字用于檢查Do.Loop語句中的條件。有兩種方式檢查條件:在進(jìn)入循環(huán)之前檢查條件(如下面的ChkFirstUntil示例);或者在循環(huán)至少運(yùn)行完一次之后檢查條件(如下面的ChkLastUntil示例)。只要條件為False,就會(huì)進(jìn)行循環(huán)。SubChkFirstUntil()Dimcounter,myNumcounter=0myNum=20DoUntilmyNum=10myNum=myNum-1counter=counter+1LoopMsgBox循環(huán)重復(fù)了&counter&次。EndSubSubChkLastUntil()Dimcounter,myNumcounter=

29、0myNum=1DomyNum=myNum+1counter=counter+1LoopUntilmyNum=10MsgBox循環(huán)重復(fù)了&counter&次。EndSub退出循環(huán)ExitDo語句用于退出Do.Loop循環(huán)。因?yàn)橥ǔV皇窃谀承┨厥馇闆r下要退出循環(huán)(例如要避免死循環(huán)),所以可在If.Then.Else語句的True語句塊中使用ExitDo語句。如果條件為False,循環(huán)將照常運(yùn)行。在下面的示例中,myNum的初始值將導(dǎo)致死循環(huán)。If.Then.Else語句檢查此條件,防止出現(xiàn)死循環(huán)。SubExitExample()Dimcounter,myNumcounter=0myNum=9Do

30、UntilmyNum=10myNum=myNum-1counter=counter+1IfmyNum10ThenExitDoLoopMsgBox循環(huán)重復(fù)了&counter&次。EndSub使用While.WendWhile.Wend語句是為那些熟悉其用法的用戶提供的。但是由于While.Wend缺少靈活性,所以建議最好使用Do.Loop語句。使用For.NextFor.Next語句用于將語句塊運(yùn)行指定的次數(shù)。在循環(huán)中使用計(jì)數(shù)器變量,該變量的值隨每一次循環(huán)增加或減少。例如,下面的示例將過程MyProc重復(fù)執(zhí)行50次。For語句指定計(jì)數(shù)器變量x及其起始值與終止值。Next語句使計(jì)數(shù)器變量每次加1。

31、SubDoMyProc50Times()DimxForx=1To50MyProcNextEndSub關(guān)鍵字Step用于指定計(jì)數(shù)器變量每次增加或減少的值。在下面的示例中,計(jì)數(shù)器變量j每次加2。循環(huán)結(jié)束后,total的值為2、4、6、8和10的總和。SubTwosTotal()Dimj,totalForj=2To10Step2total=total+jNextMsgBox總和為&total&。EndSub要使計(jì)數(shù)器變量遞減,可將Step設(shè)為負(fù)值。此時(shí)計(jì)數(shù)器變量的終止值必須小于起始值。在下面的示例中,計(jì)數(shù)器變量myNum每次減2。循環(huán)結(jié)束后,total的值為16、14、12、10、8、6、4和2的總

32、和。SubNewTotal()DimmyNum,totalFormyNum=16To2Step-2total=total+myNumNextMsgBox總和為&total&。EndSubExitFor語句用于在計(jì)數(shù)器達(dá)到其終止值之前退出For.Next語句。因?yàn)橥ǔV皇窃谀承┨厥馇闆r下(例如在發(fā)生錯(cuò)誤時(shí))要退出循環(huán),所以可以在If.Then.Else語句的True語句塊中使用ExitFor語句。如果條件為False,循環(huán)將照常運(yùn)行。使用ForEach.NextForEach.Next循環(huán)與For.Next循環(huán)類似。ForEach.Next不是將語句運(yùn)行指定的次數(shù),而是對(duì)于數(shù)組中的每個(gè)元素或?qū)ο?/p>

33、集合中的每一項(xiàng)重復(fù)一組語句。這在不知道集合中元素的數(shù)目時(shí)非常有用。在以下示例中,Dictionary對(duì)象的內(nèi)容用于將文本分別放置在多個(gè)文本框中:窗體與元素FORMNAME=frmForm過程分類在VBScript中,過程被分為兩類:HYPERLINK/china/vbscript/vbslang/vsstmSub.htmSub過程和HYPERLINK/china/vbscript/vbslang/vsstmFunction.htmFunction過程。Sub過程Sub過程是包含在Sub和EndSub語句之間的一組VBScript語句,執(zhí)行操作但不返回值。Sub過程可以使用參數(shù)(由調(diào)用過程傳遞的

34、常數(shù)、變量或表達(dá)式)。如果Sub過程無任何參數(shù),則Sub語句必須包含空括號(hào)()。下面的Sub過程使用兩個(gè)固有的(或內(nèi)置的)VBScript函數(shù),即HYPERLINK/china/vbscript/vbslang/vsfctMsgBox.htmMsgBox和HYPERLINK/china/vbscript/vbslang/vsfctInputBox.htmInputBox,來提示用戶輸入信息。然后顯示根據(jù)這些信息計(jì)算的結(jié)果。計(jì)算由使用VBScript創(chuàng)建的Function過程完成。此過程在以下討論之后演示。SubConvertTemp()temp=InputBox(請(qǐng)輸入華氏溫度。,1)MsgB

35、ox溫度為&Celsius(temp)&攝氏度。EndSubFunction過程Function過程是包含在Function和EndFunction語句之間的一組VBScript語句。Function過程與Sub過程類似,但是Function過程可以返回值。Function過程可以使用參數(shù)(由調(diào)用過程傳遞的常數(shù)、變量或表達(dá)式)。如果Function過程無任何參數(shù),則Function語句必須包含空括號(hào)()。Function過程通過函數(shù)名返回一個(gè)值,這個(gè)值是在過程的語句中賦給函數(shù)名的。Function返回值的數(shù)據(jù)類型總是Variant。在下面的示例中,Celsius函數(shù)將華氏度換算為攝氏度。Sub

36、過程ConvertTemp調(diào)用此函數(shù)時(shí),包含參數(shù)值的變量被傳遞給函數(shù)。換算結(jié)果返回到調(diào)用過程并顯示在消息框中。SubConvertTemp()temp=InputBox(請(qǐng)輸入華氏溫度。,1)MsgBox溫度為&Celsius(temp)&攝氏度。EndSubFunctionCelsius(fDegrees)Celsius=(fDegrees-32)*5/9EndFunction過程的數(shù)據(jù)進(jìn)出給過程傳遞數(shù)據(jù)的途徑是使用HYPERLINK/china/vbscript/vbslang/glossary.htm#defArg參數(shù)。參數(shù)被作為要傳遞給過程的數(shù)據(jù)的占位符。參數(shù)名可以是任何有效的變量名。

37、使用Sub語句或Function語句創(chuàng)建過程時(shí),過程名之后必須緊跟括號(hào)。括號(hào)中包含所有參數(shù),參數(shù)間用逗號(hào)分隔。例如,在下面的示例中,fDegrees是傳遞給Celsius函數(shù)的值的占位符:FunctionCelsius(fDegrees)Celsius=(fDegrees-32)*5/9EndFunction要從過程獲取數(shù)據(jù),必須使用Function過程。請(qǐng)記住,F(xiàn)unction過程可以返回值;Sub過程不返回值。在代碼中使用Sub和Function過程調(diào)用Function過程時(shí),函數(shù)名必須用在變量賦值語句的右端或表達(dá)式中。例如:Temp=Celsius(fDegrees)或MsgBox溫度為

38、&Celsius(fDegrees)&攝氏度。調(diào)用Sub過程時(shí),只需輸入過程名及所有參數(shù)值,參數(shù)值之間使用逗號(hào)分隔。不需使用HYPERLINK/china/vbscript/vbslang/vsstmCall.htmCall語句,但如果使用了此語句,則必須將所有參數(shù)包含在括號(hào)之中。下面的示例顯示了調(diào)用MyProc過程的兩種方式。一種使用Call語句;另一種則不使用。兩種方式效果相同。CallMyProc(firstarg,secondarg)MyProcfirstarg,secondarg請(qǐng)注意當(dāng)不使用Call語句進(jìn)行調(diào)用時(shí),括號(hào)被省略。什么是編碼約定?編碼約定是幫助您使用MicrosoftV

39、isualBasicScriptingEdition編寫代碼的一些建議。編碼約定包含以下內(nèi)容:對(duì)象、變量和過程的命名約定注釋約定文本格式和縮進(jìn)指南使用一致的編碼約定的主要原因是使Script或Script集的結(jié)構(gòu)和編碼樣式標(biāo)準(zhǔn)化,這樣代碼易于閱讀和理解。使用好的編碼約定可以使源代碼明白、易讀、準(zhǔn)確,更加直觀且與其他語言約定保持一致。常數(shù)命名約定VBScript的早期版本不允許創(chuàng)建用戶自定義常數(shù)。如果要使用常數(shù),則常數(shù)以變量的方式實(shí)現(xiàn),且全部字母大寫以和其他變量區(qū)分。常數(shù)名中的多個(gè)單詞用下劃線(_)分隔。例如:USER_LIST_MAXNEW_LINE這種標(biāo)識(shí)常數(shù)的方法依舊可行,但您還可以選擇其

40、他方案,用HYPERLINK/china/vbscript/vbslang/vsstmConst.htmConst語句創(chuàng)建真正的常數(shù)。這個(gè)約定使用大小寫混合的格式,并以“con”作為常數(shù)名的前綴。例如:conYourOwnConstant變量命名約定出于易讀和一致性的目的,請(qǐng)?jiān)赩BScript代碼中使用以下變量命名約定:子類型前綴示例BooleanblnblnFoundBytebytbytRasterDataDate(Time)dtmdtmStartDoubledbldblToleranceErrorerrerrOrderNumIntegerintintQuantityLonglnglngDi

41、stanceObjectobjobjCurrentSinglesngsngAverageStringstrstrFirstName變量作用域變量應(yīng)定義在盡量小的作用域中。VBScriptHYPERLINK/china/vbscript/vbstutor/vbsvariables.htm變量的作用域如下所示:作用域聲明變量處可見性過程級(jí)事件、函數(shù)或子過程在聲明變量的過程中可見Script級(jí)HTML頁面的HEAD部分,任何過程之外在Script的所有過程中可見變量作用域前綴隨著Script代碼長度的增加,有必要快速區(qū)分變量的作用域。在類型前綴前面添加一個(gè)單字符前綴可以實(shí)現(xiàn)這一點(diǎn),而不致使變量名過長。作用域前綴示例過程級(jí)無dblVelocityScript級(jí)ssblnCalcInProgress描述性變量名和過程名變量名或過程名的主體應(yīng)使用大小寫混合格式,并且盡量完整地描述其目的。另外,過程名應(yīng)以動(dòng)詞開始,例如InitNameArray或CloseDialog。對(duì)于經(jīng)常使用的或較長的名稱,推薦使用標(biāo)準(zhǔn)縮寫以使名稱保持在適當(dāng)?shù)拈L度內(nèi)。通常多于32個(gè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論