VBScript學習筆記

什麼是VBScript?

  • VBScript 是一種腳本語言
  • 腳本語言是一種輕量級的編程語言
  • VBScript 是微軟的編程語言 Visual Basic 的輕量級的版本

變量名稱的規則:

  • 必須以字母開頭
  • 不能包含點號 (.)
  • 不能超過 255 個字符

變量聲明

可以使用 Dim、Public 或 Private 語句來聲明變量

dim name
name=some value

也可以通過使用其名稱來創建變量

name=some value

不過,後面這樣的做法不是一種好習慣,這是因爲您可能會在腳本中拼錯變量名,那樣可能會在腳本運行時引起奇怪的結果。比如,當您把 "name" 變量錯拼爲 "nime" 時,腳本會自動創建一個名爲 "nime" 的變量。爲了防止腳本這樣做,您可以使用 Option Explicit 語句。如果您使用這個語句,就必須使用 dim、public 或 private 語句來聲明所有的變量。把 Option Explicit 語句放置於腳本的頂端,這像這樣:

option explicit
dim name
name=some value

變量的生存期

變量的生存期指的是它可以存在的時長。

在一個子程序中聲明變量後,變量只能在此程序內進行訪問。當退出此程序時,變量也會失效。這樣的變量稱爲本地變量。 可以在不同的子程序中使用名稱相同的本地變量,因爲每個變量只能在聲明它的程序內得到識別。

如果在子程序以外聲明瞭一個變量,頁面上的所有子程序都可以訪問訪問它。這類變量的生存期始於它們被聲明,止於頁面被關閉。

數組變量

數組變量的聲明使用變量名後跟一個括號()。在下面的例子中,創建了一個包含三個元素的數組:

dim names(2)

括號中的數字是 2。數組的下標以 0 開始,因爲此數組包含三個元素。這是容量固定的數組。

names(0)="George"
names(1)="John"
names(2)="Thomas" 

同樣地,通過使用特定數組元素的下標號,我們也可以取回任何元素的值。比如:

father=names(0)

可以在一個數組中使用多達 60 個維數。聲明多維數組的方法是在括號中用逗號來分隔數字。比如,我們聲明瞭一個包含 5 行 7 列的 2 維數組:

dim table(4, 6)

VBScript 程序

我們可使用兩種程序:子程序和函數程序。

子程序:

  • 是一系列的語句,被封裝在 Sub 和 End Sub 語句內。
  • 可執行某些操作,但不會返回值。
  • 可帶有通過程序調用來向子程序傳遞參數。
  • 如果沒有,必須帶有空的圓括號
Sub mysub()
 some statements
End Sub
Sub mysub(argument1,argument2)
 some statements
End Sub

函數程序:

  • 是一系列的語句,被封裝在 Function 和 End Function 語句內。
  • 可執行某些操作並返回值。
  • 可帶有通過程序調用來向其傳遞參數。
  • 如果沒有,必須帶有空的圓括號
  • 通過向函數程序名賦值的方式,可使其返回值。
Function myfunction()
 some statements
 myfunction=some value
End Function
Function myfunction(argument1,argument2)
 some statements
 myfunction=some value
End Function

調用子程序或函數程序

可以這樣調用某個函數:

name = findname()

此函數名爲 "findname",函數會返回一個值,這個值會存儲於變量 "name" 中。

或者可以這樣做:

msgbox "Your name is " & findname()

我們通過調用了名爲 "findname" 的函數,這個函數返回的值會顯示在消息框中。

可以這樣調用子程序:

Call MyProc(argument)

或者,也可以省略 Call 語句:

MyProc argument

If....Then.....Else

在下面的情況中,使用 If...Then...Else 語句:

  • 在條件爲 true 時,執行某段代碼
  • 選擇兩段代碼之一來執行時

如果需要在條件爲 true 時只執行一行語句,可以把代碼寫爲一行:

if i=10 Then msgbox "Hello"

在上面的代碼中,沒有 .else.. 語句。我們僅僅讓代碼在條件爲 true 時執行一項操作(當 i 爲 10 時)。

假如我們需要在條件爲 true 時執行不止一條語句,那麼就必須在一行寫一條語句,然後使用關鍵詞 "End If" 來結束這個語句:

if i=10 Then
   msgbox "Hello"
   i = i+1
end If

在上面的代碼中,同樣沒有 .else.. 語句。我們僅僅讓代碼在條件爲 true 時執行了多項操作。

假如我們希望在條件爲 true 時執行某條語句,並當條件不爲 true 時執行另一條語句,就必須添加關鍵詞 "Else":

if i=10 then
   msgbox "Hello"
else
   msgbox "Goodbye"
end If

當條件爲 true 時會執行第一段代碼,當條件不成立時執行第二段代碼(當 i 不等於 10 時)。

If....Then.....Elseif

假如你希望選擇多套代碼之一來執行,可以使用if...then...elseif語句:

if payment="Cash" then
   msgbox "You are going to pay cash!"
 elseif payment="Visa" then
   msgbox "You are going to pay with visa."
 elseif payment="AmEx" then
   msgbox "You are going to pay with American Express."
 else
   msgbox "Unknown method of payment."
end If

Select Case

假如你希望選擇多套代碼之一來執行,可以使用 SELECT 語句:

select case payment
 case "Cash"
   msgbox "You are going to pay cash"
 case "Visa"
   msgbox "You are going to pay with visa"
 case "AmEx"
   msgbox "You are going to pay with American Express"
 case Else
   msgbox "Unknown method of payment"
end select

以上代碼的工作原理:首先,我們需要一個簡單的表達式(常常是一個變量),並且這個表達式會被做一次求值運算。然後,表達式的值會與每個 case 中的值作比較,如果匹配,被匹配的 case 所對應的代碼會被執行。

Looping 語句

經常地,當編寫代碼時,我們希望將一段代碼執行若干次。我們可以在代碼中使用循環語句來完成這項工作。

在 VBScript 中,我們可以使用四種循環語句:

For...Next 語句
運行一段語句指定的次數
For Each...Next 語句
針對集合中的每個項目或者數組中的每個元素來運行某段語句。
Do...Loop 語句
運行循環,當條件爲 true 或者直到條件爲 true 時。
While...Wend 語句
不要使用這個語句 - 請使用 Do...Loop 語句代替它。

For...Next 循環

如果已經確定需要重複執行代碼的次數,那麼可以使用 For...Next 語句來運行這段代碼。

我們可以使用一個計數器變量,這個變量會隨着每次循環遞增或遞減,例如這樣:

For i=1 to 10
  some code
Next

For 語句規定計數變量以及它的開始值和結束值。

Next 語句會以 1 作爲步進值來遞增變量i。

Step 關鍵詞

通過使用 Step 關鍵詞,我們可以規定計數變量遞增或遞減的步進值。

在下面的例子中,計數變量i每次循環的遞增步進值爲 2。

For i=2 To 10 Step 2
  some code
Next

如果要遞減計數變量,就必須負的步進值。並且需要規定小於開始值的結束值。

在下面的例子中,計數變量i每次循環的遞減步進值爲 2。

For i=10 To 2 Step -2
  some code
Next

退出 For...Next

如需退出 For...Next 語句,可以使用 Exit 關鍵詞。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章