vba - VBA 宏可以是函数还是子函数?
问题描述
我从https://gallery.technet.microsoft.com/office/Save-attachments-from-5b6bf54b.bas
导入了一个文件,但意识到该功能没有显示为宏,例如在功能区菜单开发人员/宏中SaveAttachmentsFromSelection
在我把它改成一个后它确实出现了subroutine
VBA 宏可以是函数吗?
解决方案
宏对话框仅列出不带参数的非私有子例程。
例子
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
如果将子程序声明为 Private,则返回任何值或Not的函数和带参数的子程序将不会显示在“宏”对话框中
例子
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
推荐阅读
- r - R ggridges:基于第三个变量的颜色 geom_ridges_density_gradient
- jenkins - jenkins 构建配置 - 打包 EAR 问题
- c# - 当名称是保留关键字时,如何从动态对象中获取属性?
- c# - 如何在 ASP net core 中添加扩展过滤器?
- angular - 复选框值不在表单数组中,角度
- javascript - 使用 Jest.fn() 查看是否调用了 s3.upload 函数......我做错了什么?
- java - 如何将 yaml 文件中的变量读入 application.properties?
- javascript - MongoDB $和查询
- image - 如何在 Kivy 的滚动视图中将标签放置在屏幕中央?
- linux - 我可以确保每个 CentOS 7 都有 /etc/os-release 文件吗?