Как активировать надстройку Excel из командной строки в Windows 7? - PullRequest
4 голосов
/ 22 февраля 2012

В настоящее время я пишу функции VB и сохраняю их в виде файла расширения .xlam для Excel.

Мне нужен скрипт .bat для быстрого развертывания этих надстроек.

В настоящее время, чтобы активировать мои расширения .xlam, мне нужно Open Excel - File - Option - Addins - Browse to addin files..., как показано на скриншоте ниже. Это абсолютно ручная, повторяющаяся и утомительная вещь.

Так что мне нужно автоматизировать процесс активации.

Пожалуйста, помогите!

enter image description here

Ответы [ 3 ]

2 голосов
/ 22 февраля 2012

Я искал точно такие же вещи этим утром. В конце концов, я попробую что-то подобное, но пока нет. Итак, вот к чему я дошел:

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.addins2.add.aspx

Это пример того, как использовать автоматизацию Excel из C #. Из того, что я вижу, все эти интерфейсы автоматизации на самом деле являются интерфейсами COM, так что вы не ограничены C # или Visual Basic (может быть, вы можете использовать некоторые необычные сценарии Windows для работы с ними? Что я попытаюсь использовать python с pywin32, но это только потому, что мне это по вкусу).

Затем, для регистрации надстроек (ей), проверьте этот метод:

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.addins2.add.aspx

Я действительно где-то видел пример того, как его использовать, но сейчас не могу его найти.

Во всяком случае, это всего лишь идеи. Мне очень интересно знать, чем все это заканчивается; -)

1 голос
/ 16 ноября 2012

вы можете вставить этот код в ваш * .xlam на листе «ThisWorkBook», установить этот код и активировать текущие надстройки, просто открыв

Private Sub Workbook_Open()
    Dim oXL As Object, oAddin As Object
    URL = Me.Path & "\"
    normalUrl = Application.UserLibraryPath ' Environ("AppData") & "\Microsoft\AddIns"
    AddinTitle = Mid(Me.Name, 1, Len(Me.Name) - 5)

    If URL <> normalUrl Then
        If MsgBox("Can you Install AddIns ?", vbYesNo) = vbYes Then
            Set oXL = Application ' CreateObject("Excel.Application")
            oXL.Workbooks.Add
            Me.SaveCopyAs normalUrl & Me.Name
            Set oAddin = oXL.AddIns.Add(normalUrl & Me.Name, True)
            oAddin.Installed = True

            oXL.Quit
            Set oXL = Nothing
        End If
    End If
End Sub
0 голосов
/ 23 февраля 2012

Через одно добавленное вручную время мы можем обновить надстройку, скопировав файл надстройки в Excel addin lair. Вот скрипт .bat для этого.

set       fipAddin=".\FIPphase2.xlam"
set excelAddinLair="%APPDATA%\Microsoft\AddIns"

copy %fipAddin% %excelAddinLair%

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...