Le problème est que vous essayez de référencer des méthodes de classe sans créer de classe.
Vous avez trois options pour que cela fonctionne :
1) Convertissez ThisAddIn
en un Module
. Alors, il n'y aura pas de problème d'accès à la méthode Testing123
comme vous l'avez actuellement.
2) Convertissez ThisAddin.Testing123
en une méthode Shared
, c'est-à-dire :
Public Shared Sub Testing123()
Ensuite, vous y accéderiez comme suit :
Call ThisAddin.Testing123()
3) Créez une instance de la classe ThisAddIn avant d'utiliser ses méthodes :
Dim oAddIn As New ThisAddIn
Call oAddIn.Testing123()
Mise à jour
Il semble que les modules complémentaires sont traités différemment des classes standards.
Cet article MSDN contient des conseils d'implémentation spécifiques pour accéder à la fonctionnalité des modules complémentaires à partir d'autres types de solutions.
Sur la base de cet article, vous devez prendre quelques mesures supplémentaires :
1) Créez une interface pour exposer la fonctionnalité de votre module complémentaire :
_
Public Interface IAddInUtilities
Sub Testing123()
End Interface
2) Ajoutez une classe d'utilitaires à votre projet de module complémentaire :
_
_
Public Class AddInUtilities
Implements IAddInUtilities
Public Sub Testing123() Implements IAddInUtilities.Testing123
System.Windows.Forms.MessageBox.Show("Ça marche !")
End Sub
3) Ajoutez ce qui suit à ThisAddIn pour exposer les utilitaires aux appelants externes :
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) Je ne suis pas très clair sur la syntaxe exacte nécessaire pour la dernière étape car je n'ai pas l'automatisation installée dans Office, mais vous devrez faire quelque chose dans ce sens :
' OutlookTest devrait être changé par le nom du projet auquel ThisAddIn appartient
Dim addIn As Office.COMAddIn = Globals.ThisAddIn.Application.COMAddIns.Item("OutlookTest")
Dim utilities As OutlookTest.IAddInUtilities = TryCast( _
addIn.Object, OutlookTest.IAddInUtilities)
utilities.Testing123()