您已经知道可以在宏中使用子例程。 VBA还允许您定义可在宏中使用的函数。函数和子例程之间的区别在于,函数可以返回值,而子例程则不能。请考虑以下VBA宏:

Sub Macro1()

TooMany = TestFunc     If TooMany Then StatusBar = "Too many pages"

End Sub
Function TestFunc()

TestFunc = False     If Selection.Inforamtion(wdNumberOfPagesInDocument) > 10 Then        TestFunc = True     End If End Function

此代码中有两个宏。一个是函数(TestFunc),另一个是用于调用该函数的宏(Macro1)。执行该函数后,它可以执行常规宏中的所有操作。在这种情况下,它将执行测试,结果将TestFunc变量设置为True或False。请注意,此变量名称与函数名称相同。这是函数返回给调用它的程序的值。

这将我们带到Macro1宏。请注意,TestFunc函数可以出现在等号的右侧。这使得功能非常强大,并且是任何程序的重要组成部分。 VBA执行该函数并从该函数返回适当的任何值,并将其分配给等号(TooMany)左侧的变量。然后,程序根据返回的值进行操作。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)此技巧(12961)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。您可以找到此技巧的一个版本Word的旧菜单界面在这里: