VBScript 雜項語句



VBScript 還有一些其他重要的語句,可以幫助開發人員開發高效的指令碼。下表列出了一些這樣的重要語句。本章將詳細討論這些語句並舉例說明。

類別 函式名稱/語句名稱
選項 Option Explicit
指令碼引擎 ID ScriptEngine
變體 IsArray, IsEmpty, IsNull, IsNumeric, IsObject, TypeName
表示式 Eval, Execute
控制語句 With...End With
數學函式 Randomize

Option Explicit

Option Explicit 強制開發人員在程式碼的某些部分使用Dim語句宣告變數。

語法

Option Explicit

示例

如果我們使用Option Explicit並且沒有宣告變數,則直譯器將丟擲錯誤。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Option Explicit
         Dim x,y,z,a
         x = 10
         y = 20
         z = fnadd(x,y)
         a = fnmultiply(x,y)

         Function fnadd(x,y)
            fnadd = x+y
         End Function

      </script>
   </body>
</html>

ScriptEngine

ScriptEngine 表示正在使用的指令碼語言的詳細資訊。它也與ScriptEngineMajorVersion、ScriptEngineMinor Version、ScriptEngineBuildVersion一起使用,分別提供 VBScript 引擎的主版本、次版本和內部版本。

語法

ScriptEngine 

示例

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim scriptdetails
         scriptdetails =  " Version " & ScriptEngine & " - "
         'For getting Major version, use ScriptEngineMajorVersion'
        
         scriptdetails = scriptdetails &  ScriptEngineMajorVersion & "."
        
         'For getting Minor version, use ScriptEngineMinorVersion'
         scriptdetails = scriptdetails & ScriptEngineMinorVersion & "."
        
         'For getting Build version, use ScriptEngineBuildVersion'
         scriptdetails = scriptdetails & ScriptEngineBuildVersion 
        
         Document.write scriptdetails

      </script>
   </body>
</html>

將檔案儲存為 .html 副檔名,在 IE 中執行指令碼後,螢幕上將顯示以下結果。

Version VBScript - 5.8.16996 

IsEmpty

IsEmpty 函式用於檢查表示式是否為空。它返回一個布林值。如果變數未初始化或顯式設定為 Empty,則IsEmpty 返回 True。否則,表示式返回 False。

語法

IsEmpty(expression) 

示例

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim var, MyCheck
         MyCheck = IsEmpty(var)  
         Document.write "Line 1 : " & MyCheck & "<br />"
        
         var = Null   ' Assign Null.
         MyCheck = IsEmpty(var) 
         Document.write "Line 2 : " & MyCheck & "<br />"
         
         var = Empty   ' Assign Empty.
         MyCheck = IsEmpty(var)
         Document.write "Line 3 : " & MyCheck & "<br />"
        
      </script>
   </body>
</html>

將檔案儲存為 .html 副檔名,在 IE 中執行指令碼後,螢幕上將顯示以下結果。

Line 1 : True
Line 2 : False
Line 3 : True

IsNull

IsNull 函式用於檢查表示式是否具有有效資料。它返回一個布林值。如果變數為 Null,則IsNull 返回 True;否則,表示式返回 False。

語法

IsNull(expression) 

示例

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim var, res
         res = IsNull(var)
         document.write "Line 1 : " & res & "<br />"
         
         var = Null
         res = IsNull(var)
         document.write "Line 2 : " & res & "<br />"
         
         var = Empty
         res = IsNull(var)
         document.write "Line 3 : " & res & "<br />"

      </script>
   </body>
</html>

將檔案儲存為 .html 副檔名,在 IE 中執行指令碼後,螢幕上將顯示以下結果。

Line 1 : False
Line 2 : True
Line 3 : False

IsObject

IsObject 函式用於檢查表示式是否具有有效的物件。它返回一個布林值。如果表示式包含物件子型別,則IsObject 返回 True;否則,表示式返回 False。

語法

IsObject(expression)

示例

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
        Dim fso,b
        b = 10
        set fso = createobject("Scripting.Filesystemobject")
        
        x = isobject(fso)
        Document.write "Line 1 : " &  x  & "<br />" 
        
        y = isobject(b)
        Document.write "Line 2 : " &  y  & "<br />" 

      </script>
   </body>
</html>

將檔案儲存為 .html 副檔名,在 IE 中執行指令碼後,螢幕上將顯示以下結果。

Line 1 : True
Line 2 : False

IsNumeric

IsNumeric 函式用於檢查表示式是否具有數字子型別。它返回一個布林值。如果表示式包含數字子型別,則IsObject 返回 True;否則,表示式返回 False。

語法

IsNumeric(expression)

示例

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim var, chk
         var = 20
         chk = IsNumeric(var)
         Document.write "Line 1 : " &  chk  & "<br />" 
        
         var = "3.1415935745"   
         chk = IsNumeric(var)   
         Document.write "Line 2 : " &  chk  & "<br / >" 
        
         var = "20 Chapter 23.123 VBScript"   
         chk = IsNumeric(var)
         Document.write "Line 3 : " &  chk  & "<br / >" 

      </script>
   </body>
</html>

將檔案儲存為 .html 副檔名,在 IE 中執行指令碼後,螢幕上將顯示以下結果。

Line 1 : True
Line 2 : True
Line 3 : False

TypeName

TypeName 函式用於返回變數的變體子型別資訊。

語法

TypeName(varname)

TypeName 函式可以返回以下任何值:

  • Byte - 位元組值

  • Integer - 整數值

  • Long - 長整數值

  • Single - 單精度浮點值

  • Double - 雙精度浮點值

  • Currency - 貨幣值

  • Decimal - 十進位制值

  • Date - 日期或時間值

  • String - 字串值

  • Boolean - 布林值

  • Empty - 未初始化的值

  • Null - 無效資料

  • Object - 物件的型別名稱

  • Nothing - 尚未引用物件例項的物件變數

  • 錯誤

示例

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim ArrVar(2), vartype
         NullVar = Null   ' Assign Null value.

         vartype = TypeName(3.1450)     
         Document.write "Line 1 : " &  vartype  & "<br />" 
         
         vartype = TypeName(432)         
         Document.write "Line 2 : " &  vartype  & "<br />" 
         
         vartype = TypeName("Microsoft")
         Document.write "Line 3 : " &  vartype  & "<br />" 
         
         vartype = TypeName(NullVar)   
         Document.write "Line 4 : " &  vartype  & "< br />" 
         
         vartype = TypeName(ArrVar)    
         Document.write "Line 5 : " &  vartype  & "<br />"

      </script>
   </body>
</html>

將檔案儲存為 .html 副檔名,在 IE 中執行指令碼後,螢幕上將顯示以下結果。

Line 1 : Double
Line 2 : Integer
Line 3 : String
Line 4 : Null
Line 5 : Variant()

Eval

Eval 函式執行表示式並將其結果作為字串或數字返回。

語法

Eval(expression)

引數 Expression 可以是字串表示式或數字。如果將不包含數字表達式或函式名稱,而只包含簡單文字字串的字串傳遞給 Eval 函式,則會發生執行時錯誤。例如,Eval("VBScript") 會導致錯誤。

示例

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Document.write Eval("10 + 10") & "<br />"
         Document.write Eval("101 = 200") & "<br />" 
         Document.write Eval("5 * 3") & "<br />" 

      </script>
   </body>
</html>

將檔案儲存為 .html 副檔名,在 IE 中執行指令碼後,螢幕上將顯示以下結果。

20
false
15

Execute

Execute 語句接受一個引數,該引數是一個字串表示式,其中包含一個或多個要執行的語句。

語法

Execute(expression)

在 VBScript 中,a = b 可以解釋為兩種方式。它可以被視為賦值語句,其中 x 的值被賦值給 y。它也可以被解釋為一個表示式,用於測試 a 和 b 是否具有相同的值。如果相同,則結果為 True;如果不相同,則結果為 False。Execute 語句始終使用第一種解釋,而 Eval 語句始終使用第二種解釋。

示例

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim x
         x = "Global" 
         y = "VBScript"
         Execute("x = y")
         
         msgbox x
         msgbox y
        
      </script>
   </body>
</html>

將檔案儲存為 .html 副檔名,在 IE 中執行指令碼後,螢幕上將顯示以下結果。

VBScript
VBScript

With..End With

With 語句允許我們對指定的物件執行一系列操作,而無需反覆明確提及物件名稱。

語法

With (objectname)
   statement 1
   statement 2
   statement 3
   ...
   ...
   statement n
End With

示例

執行以下指令碼後,將開啟 Winword 並輸入指定的文字。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Msg =  "Vbscript" & vbCrLf & "Programming"
         Set objWord = CreateObject("Word.Application")
         objWord.Visible = True
       
         ' Objects methods are accessed without requaliyfying the objects again.'
         With objWord
            .Documents.Add
            .Selection.TypeText Msg
            .Selection.WholeStory
         End With
         
      </script>
   </body>
</html>

Randomize

Randomize 語句初始化隨機數生成器,這有助於開發人員生成隨機數。

語法

Randomize [number]

示例

執行以下指令碼後,將開啟 Winword 並輸入指定的文字。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim MyValue
         Randomize   
         MyValue = Int((100 * Rnd) + 1)   ' Generate random value between 1 and 100.
         MsgBox MyValue
        
      </script>
   </body>
</html>

將上述指令碼儲存為 HTML,並在 IE 中執行指令碼後,將顯示以下輸出。

42
廣告