从Excel中调用Outlook VBA

问题描述:

我在Outlook VBA中有一个函数,当某个Excel工作簿关闭时,我想调用它。有没有办法用Excel的BeforeClose事件做到这一点?我知道如何为这个事件编写函数,但我不知道如何将它们链接到当前的Outlook会话以获得该函数。从Excel中调用Outlook VBA

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对象模型,所以其他人可能会从这里获得更多帮助...

如果您希望获得对已运行的Outlook的实例的引用,你将需要使用:

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

,这将给你访问Outlook应用程序对象,所以你可以打电话给你想要的VBA函数在Outlook:

myOutlookApp.MyFunctionToExecute() 

你可能需要做功能公开否则Excel的VBA可能无法看到它。

+1

我相信该函数必须是公开的,并且必须在ThisOutlookSession中才能使用此方法。 – JimmyPena 2011-11-09 20:34:45