Хотя это старая ветка, похоже, там очень мало решений.Я нашел пример в Службах разработки приложений JKP, первоначально найденных Лораном Лонгре.Ниже приводится объяснение одного предостережения:
Недостаток этого метода трюка заключается в том, что фактически перерегистрируется функция внутри используемой библиотеки DLL, которая может использоваться любой программой
http://www.jkp -ads.com / Articles / RegisterUDF01.asp
Это решение только регистрирует / отменяет регистрацию UDF, но пользователю все равно придется сохранять рабочую книгу как.xlam и установите надстройку.Я использовал следующий код для автоматической установки текущей книги в качестве надстройки Excel (если вы собираетесь обновлять надстройку, вам нужно будет добавить несколько сообщений об ошибках, чтобы определить, установлено ли надстройка уже).
'Saves current workbook as an .xlam file
sFile = Application.LibraryPath & "\" & "name_of_addin" & ".xlam"
ThisWorkbook.SaveAs sFile, 55
ThisWorkbook.IsAddin = True
'Adds temporary workbook
Workbooks.Add
'Installs the addin
Set oAddin = AddIns.Add(sFile , False)
oAddin.Installed = True
'Closes temporary workbook
Workbooks(Workbooks.Count).Close
MsgBox ("Installation Successful. Please close Excel and restart.")
'Closes workbook without saving
Workbooks(sFirstFile).Close False