Я пытаюсь создать установщик MSI, который устанавливает надстройку (.xla) в Microsoft Excel (2007 в моем случае). Установка идет хорошо. Я использую «Custom Action», который запускает этот файл 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. Надстройка копируется в папку внутри «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 u [установка. Панель инструментов не удаляется при удалении, и запись надстройки в разделе «Надстройка» в настройках Excel также не предусмотрена.
Может кто-нибудь сказать мне, если эти две вещи могут быть сделаны программно с помощью VBScript?
заранее спасибо