Com base no link de Sean Cheshire para a resposta de Michaels:
“Eu encontrei um exemplo no JKP Application Development Services originalmente encontrado por Laurent Longre. Uma advertência é explicada abaixo:
Disadvantage of this trick method, is that one is actually re-registering a function within the dll one uses, which might be used by any program.
Esta solução apenas registra / cancela o registro da UDF, mas o usuário ainda terá que salvar a pasta de trabalho como .xlam e instalar o suplemento. Eu usei o seguinte código para instalar automaticamente a pasta de trabalho atual como um suplemento do Excel (se você estiver atualizando o suplemento, será necessário adicionar uma captura de erro para determinar se o suplemento já está instalado).
'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
O link ainda está ativo.