VBA 程序介绍

示例

ASub是执行特定任务但不返回特定值的过程。

Sub ProcedureName ([argument_list])
    [statements]
End Sub

如果未指定访问修饰符,则Public默认为过程。

AFunction是给定数据并返回值的过程,理想情况下没有全局或模块作用域的副作用。

Function ProcedureName ([argument_list]) [As ReturnType]
    [statements]
End Function

AProperty是封装模块数据的过程。一个属性最多可以有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