不久前,本人曾发贴求助 用 VBA 完全卸载加载宏。在老刀、大头版主及各位网友的热心帮助下,经反复试验,终于可以用VBA完全卸载我的加载宏了。现将代码贴出供各位有兴趣的网友参考,同时也请各位再将其进一步完善:
Sub delMyAddins()
Dim xlaIndex As Integer
Dim flName As String
'查出加载宏全名(含路径):
flName = Application.AddIns("xlaName").FullName
'查出目标加载宏在列表中的位置:
For i = 1 To Application.AddIns.Count
If Application.AddIns(i).FullName = flName Then
xlaIndex = i
Exit For
End If
Next
'卸载加载宏:
Application.AddIns("xlaName").Installed = Fasle
'删除加载宏文件:
Kill flName
'将目标加载宏从列表中清除:
With Application
.DisplayAlerts = False
mySendkeys xlaIndex - 1
.Dialogs(321).Show
.DisplayAlerts = True
End With
End Sub
Sub mySendkeys(N As Integer)
'因加载宏列表对话框默认的选项为第一项,因此,根据目标加载宏在列表中的位置要击xlaIndex-1次 "{down}",键,从而定位于目标加载宏:
For i = 1 To N
Application.SendKeys "{down}", False
Next
'找到目标加载宏后单击空格键将其选定,因该加载宏文件已不存在,因此默认事件是弹出删除该加载宏的确认消息。因已关闭报警,则默认的确认被执行:
Application.SendKeys "{bs}", False
'单击确定按钮,关闭加载宏列表对话框:
Application.SendKeys "{enter}", False
End Sub
经本人多次测试,以上VBA对不同位置的(用户文件)加载宏均可正确卸载,但对Excel自带的加载宏则出现问题(文件被正确删除,但不能从列表中清除),尚不知原因。
[em24][em24][em24]
[此贴子已经被作者于1/18/2003 2:07:36 AM编辑过] |