从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可能无法看到它。
我相信该函数必须是公开的,并且必须在ThisOutlookSession中才能使用此方法。 – JimmyPena 2011-11-09 20:34:45