Это из Поддержка Microsoft :
Автоматизированные надстройки и Мастер функций
Каждая надстройка автоматизации имеет свою категорию в мастере функций Excel. Имя категории - это ProgID для надстройки; Вы не можете указать другое имя категории для функций надстроек автоматизации. Кроме того, в мастере функций невозможно указать описания функций, описания аргументов или справку для функций надстроек автоматизации.
В этой статье также упоминается, что другие типы надстроек имеют приоритет в списке формул.
Мой предпочтительный подход заключается в написании надстройки VBA, которая включает в себя функциональность, предоставляемую в вашем текущем надстройке. Я делаю это, реализуя свой код в COM DLL (которая поддерживает IDTExtensibility2, поэтому он загружается как надстройка COM), а затем обращаюсь к другим методам этого объекта через очень тонкие оболочки vba:
Public Function AddinInMethod ( param As String ) As Variant
Dim oAdd As Object
On Error GoTo Err
Set oAdd = Application.COMAddIns.item("MyProgID").Object
AddInMethod = oAdd.AddInMethod(param)
Exit Function
Err:
AddinMethod = "#" & Err.Description
End Function
Это хорошо работает для меня, так как весь мой код - C ++.
Поскольку вы пишете код на C #, вам лучше реализовать свою надстройку как надстройку C # VSTO. Лично я этого не делал, но похоже, что есть много полезных фреймворковых функций, которые вы можете использовать в качестве этого типа надстроек (хотя вы ограничены более новыми версиями Office).