如何用vba使得excel加载宏在加载、卸载时执行代码?

如果一个excel工作簿打算另存为加载宏,那么需要考虑以下几个问题:

1.该加载宏在加载的时候要执行什么代码?

2.该加载宏在卸载的时候要执行什么代码?

3.该加载宏文件在打开的时候要执行什么代码?

4.该加载宏文件在关闭的时候要执行什么代码?

比如一个excel加载宏内部设计了打开加载宏会创建自定义菜单命令栏命令,那么在关闭的时候就要将创建的自定义菜单命令清除,以免影响到其它文件的使用。

为此,我们一般要在该excel 工作簿中设计以下4种工作表事件:

Private Sub Workbook_Open()
    '加载宏文件打开时执行
    Call CreateMenu
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    '加载宏文件关闭时执行
    Call DelMenu
End Sub
Private Sub Workbook_AddinInstall()
    '加载宏加载时执行
    Call CreateMenu
End Sub
Private Sub Workbook_AddinUninstall()
    '加载宏卸载时执行
     Call DelMenu
End Sub

其中Workbook.AddinInstall事件是指当该工作簿作为加载宏被安装时,发生此事件。

其中Workbook_AddinUninstall事件是指当该工作簿作为加载宏被卸载时,发生此事件。

有了以上的4个事件,就能完美的应对各种加载宏的加载、卸载操作了。

       

发表评论