程序介绍
Sub
是执行特定任务但不返回特定值的过程。
Sub ProcedureName ([argument_list])
[statements]
End Sub
如果未指定访问修饰符,则默认情况下,过程为 Public
。
Function
是一个给定数据并返回值的过程,理想情况下没有全局或模块范围的副作用。
Function ProcedureName ([argument_list]) [As ReturnType]
[statements]
End Function
Property
是封装模块数据的过程。属性最多可以有 3 个访问器:Get
用于返回值或对象引用,Let
用于赋值,和/或 Set
用于分配对象引用。
Property Get|Let|Set PropertyName([argument_list]) [As ReturnType]
[statements]
End Property
属性通常用在类模块中(尽管它们也允许在标准模块中使用),从而将访问器暴露给调用代码无法访问的数据。仅暴露 Get
访问器的属性是只读; 只暴露 Let
和/或 Set
访问器的属性是只写。只写属性不被认为是一种很好的编程习惯 - 如果客户端代码可以写一个值,它应该能够读回来。考虑实现 Sub
过程而不是创建只写属性。
返回一个值
Function
或 Property Get
过程可以(并且应该!)向其调用者返回一个值。这是通过分配过程的标识符来完成的:
Property Get Foo() As Integer
Foo = 42
End Property