如何强制excel用户启用宏?
如何强制excel用户启用宏?
问:有时候,我们使用VBA为工作簿编写了一些功能,但是如果用户在打开工作簿时不启用宏设置或者彻底禁用宏,那么这些功能就无法使用。例如,有位网友问我,他想使用双重保护来保护某工作簿,一重保护是工作簿自带的保护功能,另一重是用VBA代码编写的保护功能,但是如果用户禁用宏,那么VBA编写的保护功能就失效了。
如何强制用户在使用工作簿时启用宏?
答:我们使用VBA代码来实现在打开工作簿时提示用户必须启用宏,否则工作簿中数据工作表均不可见。
首先,在工作簿中新建一个如下图所示的工作表,并命名为<启用宏>,作为用户禁用宏时的特别提示。
接着,打开VBE编辑器,在标准模块中输入下面的代码:
说明:
Auto_Open事件和Auto_Close事件在工作簿打开和关闭时自动运行。
在工作簿关闭时,Auto_Close事件调用RunOnClose过程,隐藏除<启用宏>工作表之外的其他所有工作表。这样,再次打开该工作簿时,如果用户禁用宏,那么工作簿中就会只出现这个工作表。
如果打开工作簿时,用户启用宏,那么Auto_Open事件会调用AskUserEnabledMacros过程,隐藏<启用宏>工作表及用户不想让他人看到的工作表,其他工作表可见。