默认情况下禁用宏(默认启用它们不是一个选项)每当我打开包含宏的excel工作表时,我会弹出一个询问我是否要启用宏的弹出窗口。是否可以捕捉此弹出窗口的“确定”按钮按下事件并运行宏。
即。如果用户选择启用宏,那么我的宏应该运行以响应。
答案 0 :(得分:12)
首先,关于你的“默认启用它们不是一种选择”的说法,请记住,这不一定是真的。用户可以在没有任何提示的情况下自动执行所有宏(在Developer tab
,Macro security
下,选择“启用所有宏(不推荐...)”)。如果默认情况下未启用宏,则在用户允许运行给定宏之前,您无法执行任何操作。宏运行后,您可以在开始时自动触发各种事件,您可以在其中放置代码。例如:在文件ThisWorkbook
中(在“Microsoft Excel对象”下),您可以使用Workbook_Open
方法。示例代码:
Private Sub Workbook_Open()
MsgBox "This is the soonest I can popup"
End Sub
如果您在上述文件中复制此代码,您会看到在启用宏后立即出现一个弹出窗口。
注意:拥有自己的文件类型(.xlsm)这一事实应足以说明问题。不幸的是,不少人认为宏的功能非常有限(主要限于给定的电子表格),这是一个危险的错误概念:宏可以做的事情与传统的.exe文件几乎相同。