2011-02-23 2 views
1

J'ai une fonction dans le VBA de perspectives que je veux appeler quand un certain classeur Excel est fermé. Y at-il un moyen de le faire avec l'événement BeforeClose d'Excel? Je sais comment écrire des fonctions pour cet événement, mais je ne suis pas sûr de savoir comment les lier à la session de perspectives actuelle pour arriver à la fonction.Appel Outlook VBA à partir d'Excel

Répondre

2

applications MS Office peuvent interagir les uns avec les autres par cette méthode (ceci est basé sur Office 2007, mais d'autres seront similaires):

Ajouter une référence à l'application dans Excel

Dans Excel VBA, dans le menu Outils \ menu Références sélectionnez Microsoft Outlook 12.0 Object Library

Dans votre événement BeforeClose comprennent

Dim olApp As Outlook.Application 
Set olApp = New Outlook.Application 

Vous pouvez maintenant acc Outlook via l'objet olApp. Je ne connais pas grand chose sur le modèle d'objet Outlook, donc d'autres peuvent être en mesure d'aider plus à partir d'ici ...

2

Si vous souhaitez obtenir une référence à une instance d'Outlook qui est déjà en cours d'exécution, vous devez utiliser:

Set myOutlookApp = GetObject(,"Outlook.Application") 

qui vous donnera accès à l'objet d'application Outlook de sorte que vous pouvez appeler votre fonction VBA désirée dans Outlook:

myOutlookApp.MyFunctionToExecute() 

vous aurez probablement besoin de faire fonctionner Public sinon Excel's VBA pourrait ne pas être en mesure de le voir.

+1

Je crois que la fonction doit être publique et il doit être dans ThisOutlookSession pour que cette méthode fonctionne. – JimmyPena