这篇文章上次修改于 197 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

VBScript

1、如何在 HTML 文档中放置 VBScript

<html>
<head>
</head>
<body>

<script type="text/vbscript">
document.write("Hello from VBScript!")
</script>

</body>
</html>

2、变量声明

您可以使用 Dim、Public 或 Private 语句来声明变量,比如这样:

dim name
name=some value

-----------------------------------------------------

name=some value

使用Option Explicit,就必须使用 dim、public 或 private 语句来声明所有的变量。

option explicit
dim name
name=some value

数组变量

dim names(2)

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

通过使用特定数组元素的下标号,我们也可以取回任何元素的值。比如:

father=names(0)

我们声明了一个包含 5 行 7 列的 2 维数组:

dim table(4, 6)

3、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

此函数名为 "findname",函数会返回一个值,这个值会存储于变量 "name" 中。

name = findname()

我们通过调用了名为 "findname" 的函数,这个函数返回的值会显示在消息框中。

msgbox "Your name is " & findname()

可以这样调用子程序:

Call MyProc(argument)

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

MyProc argument

4、VBScript 条件语句

在 VBScript 我们可以使用三种条件语句:

  • if 语句

    假如你希望在条件为 true 时执行一系列的代码,可以使用这个语句。

  • if...then...else 语句

    假如你希望执行两套代码其中之一,可以使用这个语句。

  • if...then...elseif 语句

    假如你希望选择多套代码之一来执行,可以使用这个语句。

  • select case 语句

    假如你希望选择多套代码之一来执行,可以使用这个语句。

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

if i=10 Then msgbox "Hello"
    
--------------------------------------------------------------------------------
    
if i=10 Then
   msgbox "Hello"
   i = i+1
end If
-------------------------------------------------------------------------------------
    
if i=10 then
   msgbox "Hello"
else
   msgbox "Goodbye"
end If

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 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

5、VBScript 循环语句

在 VBScript 中,我们可以使用四种循环语句:

  • For...Next 语句

    运行一段语句指定的次数

  • For Each...Next 语句

    针对集合中的每个项目或者数组中的每个元素来运行某段语句。

  • Do...Loop 语句

    运行循环,当条件为 true 或者直到条件为 true 时。

  • While...Wend 语句

    不要使用这个语句 - 请使用 Do...Loop 语句代替它。

For...Next 循环

For i=1 to 10
    msgbox some code
Next

Step 关键词

通过使用 Step 关键词,我们可以规定计数变量递增或递减的步进值。

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

退出 For...Next

您可以通过 Exit For 关键词退出 For...Next 语句。

For i=1 To 10       
    If i=5 Then Exit For       
    msgbox some code        
Next

For Each...Next 循环

Dim cars(2)
cars(0)="Volvo"
cars(1)="Saab"
cars(2)="BMW"

For Each x In cars
    msgbox x
Next

Do...Loop

Do While i>10
        
    msgbox some code
        
Loop

-----------------------------------------------------------------------------------------

Do
        
    msgbox some code
        
Loop While i>10

您可以使用 Until 关键字来检查 Do...Loop 语句的条件。

Do Until i=10 
    msgbox some code     
Loop

------------------------------------------------------------------------------------------

Do     
    msgbox some code      
Loop Until i=10

退出 Do...Loop

您可以通过 Exit Do 关键词退出 Do...Loop 语句。

Do Until i=10      
    i=i-1      
    If i<10 Then Exit Do
     
Loop