Проблема в том, что вы пытаетесь ссылаться на методы класса, не создавая класс.
У вас есть три варианта выполнения этой работы:
1) Преобразовать ThisAddIn
в Module
. Тогда не будет проблем с доступом к методу Testing123
в том виде, в котором он у вас есть.
2) Преобразовать ThisAddin.Testing123
в метод Shared
, т.е.:
Public Shared Sub Testing123()
Затем вы получите доступ следующим образом:
Call ThisAddin.Testing123()
3) Создайте экземпляр класса ThisAddIn перед использованием его методов:
Dim oAddIn As New ThisAddIn
Call oAddIn.Testing123()
Обновить
Похоже, что надстройки обрабатываются иначе, чем стандартные классы.
Эта статья MSDN содержит конкретные рекомендации по реализации для доступа к функциям AddIn из других типов решения.
На основании этой статьи вам необходимо сделать пару дополнительных шагов:
1) Создайте интерфейс для доступа к функциям вашей надстройки:
<ComVisible(True)> _
Public Interface IAddInUtilities
Sub Testing123()
End Interface
2) Добавьте класс утилит в свой проект надстройки:
<ComVisible(True)> _
<ClassInterface(ClassInterfaceType.None)> _
Public Class AddInUtilities
Implements IAddInUtilities
Public Sub Testing123() Implements IAddInUtilities.Testing123
System.Windows.Forms.MessageBox.Show("It Works!")
End Sub
End Class
3) Добавьте в ThisAddIn следующее, чтобы предоставить доступ к утилитам внешним вызывающим сторонам:
Private utilities As AddInUtilities
Protected Overrides Function RequestComAddInAutomationService() As Object
If utilities Is Nothing Then
utilities = New AddInUtilities()
End If
Return utilities
End Function
4) Мне немного непонятен точный синтаксис, необходимый для последнего шага, так как у меня в офисе не установлена автоматизация, но вам нужно будет сделать что-то в этом роде:
' OutlookTest should be changed to the name of the project ThisAddIn is in
Dim addIn As Office.COMAddIn = Globals.ThisAddIn.Application.COMAddIns.Item("OutlookTest")
Dim utilities As OutlookTest.IAddInUtilities = TryCast( _
addIn.Object, OutlookTest.IAddInUtilities)
utilities.Testing123()
person
competent_tech
schedule
12.12.2011