由于默认情况下禁用宏(默认情况下启用它们不是一个选项),因此每当我打开包含宏的 excel 工作表时,我都会弹出一个询问是否要启用宏的弹出窗口。是否可以捕获此弹出窗口的“确定”按钮按下事件并运行宏。
即,如果用户选择启用宏,那么我的宏应该响应于此运行。
首先,关于您的“默认情况下启用它们不是一个选项”声明,请记住这不一定是正确的。用户可以允许所有宏在没有任何提示的情况下自动执行(在 , 下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 文件相同的事情。