VBScript 簡介

Index:

  1. 語法
  2. 判斷式
  3. 迴圈
  4. 常用函式
  5. 自定程序與函數
  6. 套用Form

※語法:

VBScript程式碼要加在那裡?

在 HTML 裡加入

<script language='vbscript'>
  你的 VBScript 程式碼
</script>



<script type='text/vbscript'>
  你的 VBScript 程式碼
</script>
<html>
<body>
<script language='vbscript'>
  Document.Write "Hello, World"
</script>
</body>
</html>

宣告變數:

使用 Dim 宣告變數
常見的變數型態有數值,字串(使用雙引號)等
陣列則是使用 (個數) 來定義
<html>
<body>
<script language='vbscript'>
Dim Name
Dim Years
Dim Class(10)

Name = "Dana"
Years = 18

MsgBox Name
MsgBox Years
</script>
</body>
</html>

其他:

註解符號:使用 單引號(')
字串相連符號:使用 &
英文字母大小寫均可
每行程式碼結束,需以Enter做換行
<html>
<body>
<script language='vbscript'>
Dim Name '註解:宣告一個Name變數
Dim Years

Name = "Dana"
Years = 18

MsgBox Name & Years '使用&符號相連兩變數
</script>
</body>
</html>

※判斷式:

If ... Then ... End If
If ... Then ... Else ... End If
If ... Then ... ElseIF .... End If
<html>
<body>
<script language='vbscript'>
Dim A, B
A = 10
B = 20

If A > B Then
  Document.Write "A > B"
ElseIf A < B Then
  Document.Write "A < B"
Else
  Document.Write "A = B"
End If
</script>
</body>
</html>

※迴圈:

For .. Next
使用 Exit For 可強制離開迴圈
<html>
<body>
<script language='vbscript'>
  Dim I
  For I = 1 To 10 Step 2 '從1到10,每次累加2
    Document.Write I & "<br>"
    If I = 5 Then
      Exit For
    End If
  Next
</script>
</body>
</html>
Do While ... Loop
使用 Exit Do 可強制離開迴圈
<html>
<body>
<script language='vbscript'>
Dim I
I = 0
Do While I < 10 '在I<10時執行本迴圈,直到I>=10則離開迴圈
  I = I + 1
  Document.Write I & "<br>"
  If I = 5 Then
    Exit Do
  End If
Loop
</script>
</body>
</html>
Do ... Loop While ...
較上種迴圈方式,會至少執行一次
使用 Exit Do 可強制離開迴圈
<html>
<body>
<script language='vbscript'>
Dim I
I = 0
Do
  I = I + 1
  Document.Write I & "<br>"
Loop While I < 10 '在I<10時執行本迴圈,直到I>=10則離開迴圈
</script>
</body>
</html>
Do ... Loop Until ...
使用 Exit Do 可強制離開迴圈
<html>
<body>
<script language='vbscript'>
Dim I
I = 0
Do
  I = I + 1
  Document.Write I & "<br>"
Loop Until I >= 10 '執行本迴圈,直到I>=10則離開迴圈
</script>
</body>
</html>

※常用函式:

數值函式
ABC() 絕對值
CInt() 字串轉數值
<html>
<body>
<script language='vbscript'>
Dim A
Dim B
A = -100
B = "123"

Document.Write ABS(A) '結果:ABS(-100) = 100
Document.Write "<br>"

Document.Write A + CInt(B) '結果:-100 + 123 = 23
Document.Write "<br>"
</script>
</body>
</html>
字串函式
LEN() 字串長度
Right(), Left(), Mid() 截取字串右邊、左邊、中間某些字元
<html>
<body>
<script language='vbscript'>
Dim A
A = "Hi, This is Dana's Homepage."

Document.Write LEN(A) '總長度,結果:28(空白,逗號等也算是一個字元)
Document.Write "<br>"

Document.Write Right(A, 6) '取右邊6個字元,結果:epage.
Document.Write "<br>"

Document.Write Left(A, 6) '取左邊6個字元,結果:Hi, Th
Document.Write "<br>"

Document.Write Mid(A, 5, 6) '取第5個字元後的6個字元,結果:This i
Document.Write "<br>"
</script>
</body>
</html>
字串函式
LCase(), UCase() 字母變成全小寫、全大寫
<html>
<body>
<script language='vbscript'>
Dim A
A = "Hello, World."

Document.Write LCase(A) '結果:hello, world.
Document.Write "<br>"

Document.Write UCase(A) '結果:HELLO, WORLD.
Document.Write "<br>"
</script>
</body>
</html>
字串函式
InStr(a, b) 取得b字串在a字串的位置
<html>
<body>
<script language='vbscript'>
Dim A, B
A = "Hi, This is Dana's Homepage."
B = "Dana"
Document.Write InStr(A, B) '結果:13
Document.Write "<br>"

B = "DANA" '換成不同的字母大小寫看看
Document.Write InStr(A, B) '結果:0,表示A字串中,沒有符合B字串的組合
Document.Write "<br>"
</script>
</body>
</html>

※自定程序與函式:

自定程式
Sub ... End Sub
<html>
<body>
<script language='vbscript'>
'無參數的程序
Sub doAlert()
  Alert "Hi, Dana"
End Sub
Call doAlert() '呼叫doAlert()

'有參數的程序
Sub doAlert2(HitStr)
  Alert HitStr
End Sub
Call doAlert2("Dana's Homepage") '呼叫doAlert2(),並傳入一個參數

'有一個以上參數的程序
Sub doAlert3(HitStr, HitStr2)
  Alert HitStr & "--" & HitStr2
End Sub
Call doAlert3("Dana", "Homtpage") '呼叫doAlert3(),並傳入兩個參數
</script>
</body>
</html>
自定函式
Function ... End Function
<html>
<body>
<script language='vbscript'>
'無回傳值的函式
Function getStr()
  MsgBox "Hi, Dana"
End Function
Call getStr() '呼叫getStr()

'有回傳值的函式
Function getStr2()
  getStr2 = "Hi, Dana" '回傳值放入同函式名稱的變數裡
End Function
MsgBox getStr2() '呼叫getStr2()

'有參數,也有回傳值的函式
Function getStr3(a, b)
  getStr3 = a & "==" & b '回傳值放入同函式名稱的變數裡
End Function
MsgBox getStr3("Hi", "Dana") '呼叫getStr2()

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

※套用Form:

<html>
<body>
<script language='vbscript'>
Sub showStr(str)
  MsgBox str
  Alert Document.fm.id.value
End Sub
</script>

<form name='fm'>
  <input type='text' name='id' value='Hi, Dana'>
  <input type='button' onclick='vbscript:showStr(fm.id.value)' value='Do!'>
</form>
</body>
</html>

作者:Dana (cowwu@ms15.hinet.net) 2004/10/21
本文章公開於個人網站 http://www.dana.idv.tw
Home Copyright © Shu-Chen Wu