上一篇中我讲到了VB通用过程中的Sub过程,今天我来讲讲它的“另一半”----Function过程
概念
也称函数
与内部函数一样,是一个可以反复使用的程序段,在其他程序段中均可以通过调用来执行这段程序,完成既定工作
声明
[Private|Public|Static] Function 函数名([参数表] [AS类型])
[函数体]
[<函数名>=<表达式>]
[Exit Function]
End Function
- 与Sub过程差不多。但Function过程有返回值。声明Function过程要指明数据类型,实际上是返回值的数据类型,默认为Variant类型
- [<函数名>=<表达式>]若省略,则该过程返回一个默认值:数值型函数过程返回0,字符串函数过程返回空字符串。<表达式>的值是函数返回的结果,通过赋值语句将值赋给<函数名>,该值就是Function过程的返回值
什么时候使用?
function过程同sub过程一样,都是当不同的事件要执行一段相同的代码,这时就可以使用function过程,减少重复代码的使用,避免冗长
优点
防止了程序中代码的反复书写
建立
1.在“代码窗口”直接输入Function过程
2.选择“工具”菜单中的添加过程命令定义Function过程,选择“函数类型”
调用
1.使用Call语句
Call 函数名(参数1,参数2,……)
2.直接使用函数名
如果直接使用函数名的调用方法有两种形式:
- 如果函数有返回值,一般如下形式调用:被赋值对象=函数名(实际参数1,实际参数2,……)
- 如果放弃函数的返回值:函数名 实际参数1,实际参数2,……
光说不练假把式,来看看实例吧!
'----------------------------------------------- '输入三个数求最大值 '----------------------------------------------- Private Sub Form_Load() Dim a%, b%, c%, d% Show a = Val(InputBox("请输入一个整数")) b = Val(InputBox("请输入一个整数")) c = Val(InputBox("请输入一个整数")) d = Max(a, b) Print "三个整数中最大的数是:"; Max(d, c) End Sub Function Max(m%, n%) As Integer If m > n Then Max = m Else Max = n End If End Function
VB中的Sub过程和Function过程我都讲完了,那你们有没有想过这个问题呢?既然Sub过程和Function过程的用法这么相似,为什么VB通用过程中还要有两个过程呢?一个不就好了吗?非也非也,既然定义了两个,那肯定他们呢就有不同之处啦!
Sub过程和Function过程的区别:
- Subs是子程序,只作为一个基本的独立语句调用,没有返回值
- 而function过程也称为函数,有有返回值
注:如果在同一个模块中,同一个变量名不能既用作sub过程又用过function过程