我想创建一个 MSI 安装程序,将一个 .xla 插件安装到 Microsoft Excel (在我的情况下是2007版)中。安装过程顺利进行。我使用一个“自定义操作”来运行这个 VBScript 文件:
Dim SourceDir
Dim objExcel
Dim objAddin
SourceDir = Session.Property("CustomActionData")
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Add
Set objAddin = objExcel.AddIns.Add(SourceDir & "addin.xla", True)
objAddin.Installed = True
objExcel.Quit
Set objExcel = Nothing
我使用CustomActionData属性将addin的位置传递给脚本。 Add-in被复制到“Program Files”文件夹中的一个文件夹中,直到卸载为止。这由安装程序本身处理。
问题出现在我使用卸载脚本时:
Dim objExcel
Dim addin
On Error Resume Next
Set objExcel = CreateObject("Excel.Application")
For i = 0 To objExcel.Addins.Count
Set objAddin= objExcel.Addins.item(i)
If objAddin.Name = "addin.xla" Then
objAddin.Installed = False
End If
Next
objExcel.Quit
Set objExcel = Nothing
此插件在 Excel 安装时创建自定义工具栏。卸载后,工具栏不会被删除,并且在 Excel 设置的“插件”部分中也不会删除该插件的条目。
有人能告诉我是否可以使用 VBScript 编程来完成这两件事吗?
提前致谢。