2011-02-23 110 views
1

我在Outlook VBA中有一個函數,當某個Excel工作簿關閉時,我想調用它。有沒有辦法用Excel的BeforeClose事件做到這一點?我知道如何爲這個事件編寫函數,但我不知道如何將它們鏈接到當前的Outlook會話以獲得該函數。從Excel中調用Outlook VBA

回答

2

MS Office應用程序可以相互用這種方法進行交互(這是基於Office 2007的,但其他人是相似的):

的應用程序添加引用到Excel

在Excel VBA,從工具\ References菜單選擇Microsoft Outlook 12.0對象庫

在你BeforeClose事件包括

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

您現在可以ACC通過olApp對象訪問Outlook。我不太瞭解Outlook對象模型,所以其他人可能會從這裏獲得更多幫助...

2

如果您希望獲得對已運行的Outlook的實例的引用,你將需要使用:

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

,這將給你訪問Outlook應用程序對象,所以你可以打電話給你想要的VBA函數在Outlook:

myOutlookApp.MyFunctionToExecute() 

你可能需要做功能公開否則Excel的VBA可能無法看到它。

+1

我相信該函數必須是公開的,並且必須在ThisOutlookSession中才能使用此方法。 – JimmyPena 2011-11-09 20:34:45