Я хочу экспортировать модуль VBA из надстройки и импортировать его в обычный файл, если его там еще нет. Мой код работает, когда я запускаю его вручную, но когда я пытаюсь запустить его автоматически после загрузки надстройки, я получаю сообщение об ошибке: «50289 Невозможно выполнить операцию, так как проект защищен». Я предполагаю, что это защищено, потому что это загружено как надстройка, но есть ли способ обойти это?
Sub AutoExec()
Call MoveAutoMacro
End Sub
Function MoveAutoMacro()
Dim sPath, thisName As String
Dim moduleCount, i As Integer
Dim amExists As Boolean
moduleCount = Application.Templates("Normal.dotm").VBProject.vbcomponents.Count
amExists = False
For i = 1 To moduleCount
thisName = Application.Templates("Normal.dotm").VBProject.vbcomponents(i).Name
If thisName = "AutoMacros" Then amExists = True
Next
If Not amExists Then
sPath = Environ("USERPROFILE") & Application.PathSeparator & "Desktop" & Application.PathSeparator & _
"AutoMacros.bas"
ThisDocument.VBProject.vbcomponents("AutoMacros").Export sPath
Application.Templates("Normal.dotm").VBProject.vbcomponents.Import sPath
End If
End Function