常用的過程有兩種,一種為函數(shù)抒钱,給調(diào)用者返回值,一種為子程序颜凯,無返回值谋币,還有一種叫事件的特殊子程序,用的比較少症概。
Sub過程:是一個過程復(fù)用蕾额,沒有返回值,可使用參數(shù)
Function函數(shù):可以有返回值彼城,也有參數(shù)诅蝶,若如參數(shù),則必須包含空括號()募壕。Function通過函數(shù)名返回一個值调炬,這個值是在過程的語句中賦給函數(shù)名,返回值的數(shù)據(jù)類型總是Variant舱馅。
函數(shù)的基本定義方法為:
Function ?函數(shù)名稱(參數(shù)列表)
函數(shù)代碼
函數(shù)名稱=某值 ‘用來返回值
end ?function
注意:
1缰泡、Sub子程序不能在表達式中使用。
2代嗤、函數(shù)只能出現(xiàn)在賦值語句的右邊棘钞,或者表達式中,函數(shù)不能直接使用干毅,如果必須直接使用函數(shù)宜猜,則必須使用call語句調(diào)用,且必須要有返回值硝逢。
'定義函數(shù)
Function addnum(a,b)
?? addnum=a+b
End Function
'調(diào)用函數(shù)
msgbox addnum(2,3)
VBScript數(shù)據(jù)類型
VBScript只有一種數(shù)據(jù)類型Variant姨拥,根據(jù)使用的不同,可包含各種不同的信息趴捅〉姹校可用VarTpye查看Variant的子類型
? ? ? ? ? ? ?VarType返回的常量與值對應(yīng)表
ConstantValueDescription
vbEmpty0Uninitialized (default)
vbNull1Contains no valid data
vbInteger2Integer subtype
vbLong3Long subtype
vbSingle4Single subtype
vbSingle5Double subtype
vbCurrency6Currency subtype貨幣型
vbDate7Date subtype
vbString8String subtype
vbObject9Object
vbError10Error subtype
vbBoolean11Boolean subtype
vbVariant12Variant (used only for arrays of variants)
vbDataObject13Data access object數(shù)據(jù)訪問對象
vbDecimal14Decimal subtype
vbByte17Byte subtype
vbArray8192Array
說明:
在VBScript中對變量霹疫、方法拱绑、函數(shù)和對象的引用是不區(qū)分大小寫;
顯式地申明一個變量丽蝎,需要使用關(guān)鍵字Dim猎拨,申明多個同類型變量膀藐,可以用逗號分隔;
VBScript中不允許在申明變量的時候同時給變量賦值红省。但是允許在一行代碼內(nèi)同時對兩個變量進行賦值额各,中間用冒號分隔。
VBScript的循環(huán)語句
For...Next:
For i=1 to 5
print i
Next
print "結(jié)束"
For each...Next:
用For each …… Next語句可以對數(shù)組元素進行處理吧恃,包括“查詢虾啦、顯示或讀取”。它所重復(fù)執(zhí)行的次數(shù)由數(shù)組中元素的個數(shù)確定痕寓,也就是說傲醉,數(shù)組中有多少個元素,就自動重復(fù)執(zhí)行多少次呻率。
Dim a(),num,x
num=inputbox("輸入Num的值")
ReDim preserve a(num)
a(0)=1:a(1)=2
print Ubound(a) ? ? ? ? ? '輸出數(shù)組a的長度
For each x in a???????????? '輸出數(shù)組a中的所有數(shù)據(jù)
???? print x????????????
Next
注意:在上述兩種循環(huán)中隨時可以使用exit ?for來退出循環(huán)
While...Wend:
Dim i
i=5
While i>1
???? print i
???? i=i-1
Wend
Do while...Loop:在條件滿足時執(zhí)行一段代碼
Dim i
i=5
Do while i=5
???? print i
???? i=i-1
Loop?????? '結(jié)果輸出5
Do until...Loop:在條件不滿足時執(zhí)行代碼
Dim i
i=5
Do until i=1
???? print i
???? i=i-1
Loop?????? '結(jié)果輸出5,4,3,2
VBScript的數(shù)組
定義固定長度的數(shù)組:Dim A(9) 該數(shù)組具有10個數(shù)據(jù)A(0)--A(9)
給數(shù)組賦值:A(0)=1
動態(tài)定義數(shù)組長度硬毕,如:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Dim B()
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?num=10
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ReDim B(num)
??????????注意:在改變數(shù)組的大小時,數(shù)組的數(shù)據(jù)會被破壞礼仗,使用關(guān)鍵字preserve來保護數(shù)據(jù)吐咳,如
? ? ? ? ? ? ? ? ? ? ReDim preserve B(num)
? ? 4. ?定義二維數(shù)組: 數(shù)組名(個數(shù),維數(shù))
? ? 5. ?獲取數(shù)組長度使用Ubound函數(shù)元践,Ubound(B,[維度數(shù)])韭脊,維度數(shù)不寫默認(rèn)為1
條件語句:if...then...else 和 select...case
If....Then....Else:
box = inputbox("請輸入數(shù)字:")
If box=1 ?Then
msgbox 1
elseif box=2 then
msgbox 2
elseif box =3 then
msgbox 3
else?
msgbox "輸入的數(shù)字無效!"
End If
Select...Case:
以上例子使用select...case實現(xiàn):
box=inputbox("請輸入數(shù)字:")
Select Case box
Case 1?
msgbox 1
Case 2
msgbox 2
Case 3
msgbox 3
Case else?
msgbox "輸入的數(shù)字無效单旁!"
End Select