这篇简单介绍过程及函数。
为什么要是使用过程和函数?使用过程及函数能够将脚本中的代码模块化,放入有名称的具有特定功能的代码块中。可以使我们有组织地考虑复杂的问题,提高代码的可读性和可理解性,并使创建可复用的代码成为可能。
函数就是调用时有返回值有名称的代码块,而过程是没有返回值的代码块。下面分别来说明:
过程:
作为过程的具名代码块是用Sub关键字来识别的,即包含在Sub和End Sub之间的一组语句,执行操作但不返回值。
完整语法声明过程:
[Public|Private]SubName ([Argument1],[Argument2])
[code
inside the procedure ]
End Sub
如:
Sub GreetUser
MsgBox "Hello ,Welcome to my script"
End Sub
以上就是一个无参数过程声明,但是如果没有代码调用这个过程的话,过程就呆着不动,什么也不做,当然这不是我们使用过程的目的,我们使用它是希望它能完成一定的功能,那么就应该在需要它完成一定功能时调用它。过程和函数是可以接收参数(就是通过参数给过程和函数传递数据),参数就是一个记录着传递给过程和函数的信息的值,过程和函数内部的代码可以访问这个值,如以下例子定义了一个带参数的过程,并且还调用了它:
Option Explicit
GreetUser "Binbby"
Sub GreetUser(GetUserName)
MsgBox "Hello,"& GetUserName & ",Welcome to my script"
End Sub
运行以上代码会打印出:Hello,Bill,Welcome to my script
调用过程包括两种方式(调用以上过程为例):
1. GreetUser "Binbby"
2. Call GreetUser ("Binbby")
函数:
函数的完整语法声明过程与过程是一样的,唯一的区别就是将关键字Sub换为Function:
[Public|Private]FunctionName ([Argument1],[Argument2])
[code inside the procedure
]
End Function
上面提高过函数与过程的不同在于函数有返回值,而指定返回值的方法是在函数内部的代码中使用函数名,如:
Function AddNumbers(Arg1,Arg2)
AddNumbers = Arg1 + Arg2
End Function
调用函数包括三种方式:
1. lngSum = AddNumbers(10,20)
2. Call AddNumbers(10,20)
3. AddNumbers 10 , 20
如以下这个例子:
Option Explicit
DimlngSum
lngSum = AddNumbers(10,20)
‘AddNumbers 10,20
‘Call AddNumbers(10,20)
Function AddNumbers(Arg1,Arg2)
AddNumbers = Arg1 + Arg2
MsgBox AddNumbers
End Function
当然过程和函数也可以相互嵌套,如:
Option Explicit
GreetUser
Sub GreetUser
MsgBox "Hello, " & GetUserName & ". Welcome to my Script."
End Sub
Function GetUserName
GetUserName = InputBox ("Pleaser enter your name.")
End Function
退出过程或函数:
在过程和函数内部的最后一行代码执行完之后自然就会退出,但是有时候需要立即结束一个过程或函数而不是等到代码全部运行完。这时候可以用Exit关键字,退出过程和函数,即Exit Sub或者Exit Function,如下:
Option Explicit
CallBB()
FunctionBB
If1=1 Then
ExitFunction
End If
MsgBox"test"
End Function
此脚本执行进入tt函数代码块之后判断1=1成立,则退出function,最后的msgbox “test”不会被执行.
写于2012-12-15 没翅膀的飞鱼