Это зависит от типа надстройки. В основном вы можете иметь надстройки Excel (обычно написанные на VBA) и надстройки COM, которые могут быть написаны на любом языке, который понимает COM. Это также может зависеть от того, где установлена надстройка.
Надстройки Excel в определенных каталогах можно найти и открыть автоматически. Распространенным местом установки надстроек Excel является C:\Users\\AppData\Roaming\Addins. Если надстройка Excel хранится здесь, ее можно открыть на вкладке Файл-> Параметры-> Надстройки в Excel или на вкладке Разработчик, если вы ее включили. После включения надстройки в любом месте она обычно загружается при каждом запуске Excel.
Надстройки COM устанавливаются с помощью установщика, который размещает ссылку на надстройку в реестре. Excel просматривает в реестре эти надстройки при открытии. Два местоположения, которые я описал выше, также содержат списки надстроек COM, и их можно включить через эти списки.
Кроме того, вы можете заставить книгу открыть надстройку из VBA. Когда ваша рабочая книга открыта, выполняется подпрограмма с именем Workbook_Open. Такой код заставит надстройку быть установленным.
Sub Workbook_Open()
Const addinName as String = "insert the name of your add-in"
If Not AddinLoaded(addinName) Then
If AddinAvailable(addinName) Then
On Error Resume Next
Application.AddIns2(addinName).Installed = True
On Error GoTo 0
End If
End If
End Sub
Function AddinAvailable(addinName As String) As Boolean
Dim ad As AddIn
On Error Resume Next
Set ad = Application.AddIns2.Item(addinName)
On Error GoTo 0
AddinAvailable = Not ad Is Nothing
End Function
Function AddinLoaded(addinName As String) As Boolean
Dim ad As AddIn, errNumber As Long
On Error Resume Next
Set ad = Application.AddIns2.Item(addinName)
errNumber = Err.Number
On Error GoTo 0
If Not ad Is Nothing Then
If errNumber = 0 Then AddinLoaded = ad.Installed And ad.IsOpen
End If
End Function