VBS基本語法

覆手為雲p發表於2017-07-10

 

一、初識VBS

Vbs       是一種變數無關、解釋性執行的指令碼語言。vbs語言中不區分大小寫。語句以換行結束。

dim        宣告變數;批量名稱宣告,多個變數之間用逗號分隔:

set          賦值;

rem       註釋,同 '

msgbox prompt,buttons,title,helpfile,context   輸出 msgbox(s) 把兩個不同的內容一起輸出時用“+”連線

       prompt   顯示的字串,最大為1024字元,如果換行用回車換行符組合 chr(13)&chr(10)       buttons 預設值為0,為顯示按鈕值的引數

       title標題,如果省略則交應用程式的名稱顯示在標題欄中;

       helpfile字串表示式,用於標識為對話方塊提供上下文相關幫助檔案,如果提供了helpfile,則必須提供context

       context   數值表示式,用於標識某個幫助檔案的編號,必須與helpfile一起使用;

inputbox(msg,"title","傻逼") '第一引數為顯示語句,最大長度為1024;第二為框體名稱,第三為預設輸入內容

msgbox的返回值有1-7七個數,依次來自:確定、取消、放棄、重試、忽略、是、否;

 

二、資料型別

vbs中只有一個基本資料資料型別 Variant,variant中包含integer等子型別,用VarType()函式可返回資料的子型別的對應值;使用typename(物件)也可返回子型別;

子型別有:

byteinteger,long,single,duble,currency(貨幣值),decimal,date,string,boolean,empty(未初始化),null(無有效資料),object(一般物件),unknown,nothing(還未引用物件例項的物件變數)error

 

const        宣告常量;也可用Private或者Public來改變變數的公有和私有屬性;

dim A(10)      11元素陣列,賦值A(2)=1,二維陣列:B(2,2) 單點賦值B(1)(2)'陣列最高可為60

 

變數的命名規則:

1、第一個字元必須是字母;

2、不能包含嵌入句點的語句;

3、長度不能超過255個字元;

4、在被宣告的作用域內必須唯一;

 

三、運算子

1、算術運算子

+    

-    

*     

/     

\      整除

mod      取餘(%

^    

&    字串連線,字串即用“”包圍的內容

2、比較運算子

=     等於

<>  不等於

<     小於

>     大於

<=  小於等於

>=  大於等於

Is     物件引用比較

3、邏輯運算子

not    

and  

or     

xor    異或

eqv      等價

imp  隱含

 

四、控制結構:

1、條件語句:

if...then
...else 
if...then
...else
...
end if
select case
    ..
    case
    .. ...
    case
    .. ...
    case else
    ...
end select

 

2、迴圈:

1)、do...loop '重複執行doloop之間的語句,直到exit do

exit do

2)、while...wend

3)、for...next.

4)、for each ... next

 

五、函式

1、格式:

sub Name()
    ...
end sub
function xx()
    ...
end function

sub無返回值,function有返回值

 

2、常用函式:

 1 asc(s)     返回s內第一個字母對應的ASCII碼
 2 chr(51)    將數字返回對應的字元
 3 cbool()    返回表示式的boolean值
 4 cByte()    將表示式轉換為byte子型別的variant
 5 cCur()     將表示式轉換為currency
 6 cdate()    將表示式轉換為date
 7 cdble()    將表示式轉換為double型別
 8 cint()     轉換為integer
 9 cLng()     轉換為long
10 csng()     轉換為single
11 cstr()     轉換為string
12 isArray()  判斷是否為陣列,返回bool值;
13 isDate()   判斷是否為日期,返回bool值;
14 isEmpty()  判斷是否已初始化,返回bool值;
15 isNumeric()判斷是否為數字,返回bool值;
16 isNull()   判斷是否不包含有效資料,返回bool值;
17 isObject() 判斷是否引用了有效物件,返回bool值;
18 len(()     返回字串內的字元數或儲存一變數所需要的位元組數;
19 left(string,length)     返回從字串左邊算起的指定數目的字元;
20 mid(string,start,length)  從字串中返回指定數目的字元;
21 right(string,length)      從字串中返回字元,從右邊開始
22 InStr(start,str1,str2)    返回str2在str1中第一次出現的位置,start表示開始搜尋位置,為可選;
23 Lcase(str)      返回字串的小寫形式;
24 UCase(str)      返回字串的大寫形式;
25 split(separator) 分割字串;
26 Date            返回當前日期;
27 Time            返回當前時間;
28 Now             返回日期和時間;
29 day(date)       返回日;
30 month(date)      返回月;
31 year(date)      返回年;
32 hour(time)      返回小時;
33 minute(time)     返回分鐘;
34 second(time)     返回秒;
35 formatDateTime(date[,namedFormat])    返回已格式化的時間
36     namedformat可選引數有:
37     vbGeneralDate     (0)
38     vbLongDate       (1)
39     vbShortDate      (2)
40     vbLongTime       (3)
41     vbShortTime      (4)

 

六、異常處理

格式:

on error resume next
...
err.Clear
err.raise 6

對常見檔案和資料庫的訪問:

1 set myobj = CreateObject("Scripting.fileSystemObject")  開啟文字檔案;
2 set myobj = CreateObject("Excel.Application")    訪問Excel
3 Set myobj = CreateObject("Microsoft.XMLDOM")    XML檔案訪問;
4 set myobj = CreateObject("ADODB.Recordset")    acess資料庫訪問;
5 set myobj = CreateObject("ADODB.Connection")    SQLServer資料庫訪問;

 日期文字和時間文字包含在兩個#之間,如:#6-1-99#

1 scripting.filesystemobject 提供一整套檔案系統操作函式
2 scripting.dictionary    返回存放鍵值對的字典物件
3 wscript.shell        提供一套讀取系統資訊的函式
4 wscript.network       提供網路連線和遠端印表機管理的函式