VBA宏是函数还是仅是子函数?

VBA宏是函数还是仅是子函数?,vba,outlook,Vba,Outlook,我从导入了一个.bas文件,但实现了功能SaveAttachmentsFromSelection没有显示为宏,例如在功能区菜单“开发人员/宏”中 在我将其更改为子例程后,它确实出现了 VBA宏可以是函数吗?宏对话框仅列出不带参数的非专用子例程 范例 如果将子例程声明为Private,则返回任何值或Not的函数以及带有参数的子例程将不会显示在“宏”对话框中 例子 “宏”对话框仅列出不带参数的非专用子例程 范例 如果将子例程声明为Private,则返回任何值或Not的函数以及带有参数的子例程将不会显

我从导入了一个
.bas
文件,但实现了功能
SaveAttachmentsFromSelection
没有显示为宏,例如在功能区菜单“开发人员/宏”中

在我将其更改为
子例程后,它确实出现了

VBA宏可以是函数吗?

宏对话框仅列出不带参数的非专用子例程

范例

如果将子例程声明为Private,则返回任何值或Not的函数以及带有参数的子例程将不会显示在“宏”对话框中

例子

“宏”对话框仅列出不带参数的非专用子例程

范例

如果将子例程声明为Private,则返回任何值或Not的函数以及带有参数的子例程将不会显示在“宏”对话框中

例子


函数就像公式,它们应该返回一些东西。潜艇可以做很多事情,也可以做很多事情。您使用一个函数执行重复的操作以返回结果。如果您的函数没有将某个项返回到所调用的项,那么请将其设置为sub.@ScottCraner抱歉造成混淆。该函数确实返回一个值。我的问题是,我在Outlook宏列表中没有看到它(例如在men path Developer/Macros中)。这有点令人惊讶,但是technet的文章说它应该作为一个函数出现,您需要在另一个标准模块中包含sub
ExecuteSaving()
。sub调用该函数。然后你可以在宏列表中看到子函数。函数就像公式一样,它们应该返回一些东西。潜艇可以做很多事情,也可以做很多事情。您使用一个函数执行重复的操作以返回结果。如果您的函数没有将某个项返回到所调用的项,那么请将其设置为sub.@ScottCraner抱歉造成混淆。该函数确实返回一个值。我的问题是,我在Outlook宏列表中没有看到它(例如在men path Developer/Macros中)。这有点令人惊讶,但是technet的文章说它应该作为一个函数出现,您需要在另一个标准模块中包含sub
ExecuteSaving()
。sub调用该函数。然后您将能够在宏列表中看到子项。谢谢。我知道私人潜水艇和怀疑的功能,但我认为微软technet的帖子将是合法的:)谢谢。我知道私人潜水艇,并怀疑其功能,但我认为微软technet的帖子是合法的:)
Option Explicit
' this will show
Public Sub Public_Example()
    Debug.Print "Hello Public " ' print on immediate window
End Sub

' and this will show
Sub Public_Example()
    Debug.Print "Hello Public " ' print on immediate window
End Sub
Option Explicit
' this will not show
Public Sub Public_Example(Miserable As Integer)
    Debug.Print "Hello Private " ' print on immediate window
End Sub


' this will not show
Private Sub Private_Example()
    Debug.Print "Hello Private " ' print on immediate window
End Sub


' this will not show
Public Function Public_Example()
    Debug.Print "Hello Private " ' print on immediate window
End Function


' this will not show
Private Function Private_Example()
    Debug.Print "Hello Private " ' print on immediate window
End Function