После долгих поисков я теперь могу ответить сам.
Пожалуйста, выполните следующие шаги,
- Объявите интерфейс с функциями, которые вы хотите использовать в своей книге, и установите для его атрибута ComVisible значение true,
Открытый интерфейс ICallMe
Sub MyFunction ()
Конечный интерфейс
- Теперь создайте класс, который реализует этот интерфейс, и установите для его атрибута ComVisible значение true, а для атрибута classinterface - значение None, что-то вроде этого,
Открытый класс AddInUtilities
Реализует ICallMe
Public Sub MyFunction() Implements ICallMe.MyFunction
Dim activeWorksheet As Excel.Worksheet = Globals.ThisAddIn.Application.ActiveSheet
If activeWorksheet IsNot Nothing Then
Dim range1 As Excel.Range = activeWorksheet.Range("A1")
range1.Value2 = "This comes from my Add-In"
End If
End Sub
Конечный класс
5.Создайте свой проект надстройки с опцией «Регистрация для COM-взаимодействия». Чтобы установить параметр «Зарегистрироваться для Com Interop», перейдите в свойство проекта, а затем перейдите на вкладку «Компиляция» (на VB.net) и установите флажок «Зарегистрироваться для COM-взаимодействия».
Теперь в своем проекте книги Excel добавьте ссылку на эту надстройку и на любое событие вашей книги, например, нажмите кнопку, введите следующий код,
Dim addIn As Office.COMAddIn = Application.COMAddIns.Item ("ImportData")
Слабые утилиты As ImportData.ICallMe = TryCast (addIn.Object, ImportData.ICallMe)
utilities.MyFunction ()
Готово:)
Единственное, что нужно помнить, это то, что не вызывайте функцию надстройки из события запуска вашей книги или листа.
Надеюсь, это поможет вам всем, так как работает для меня.
Спасибо,
Мринал Джайсвал