【发布时间】:2020-12-08 12:35:24
【问题描述】:
我想获取活动打开的 MailItem(无论是新邮件还是收到的邮件)。当用户运行我的宏时,我需要向该邮件添加一些内容。我正在使用 Outlook 2003 和 VBA。
我发现了这个:How do you get a reference to the mail item in the current open window in Outlook using VBA? 但是它不起作用,因为TypeName(Application.ActiveWindow) 设置为空。我也试过Set Mail = Application.ActiveInspector.currentItem,但也没用。
ActiveInspector 一定有我不明白的地方。
根据要求,这是位于专用模块中的过程/宏,当用户单击Application_Startup() 方法中添加的菜单按钮时调用:
Sub myMacro()
Dim NewMail As Outlook.MailItem
Set NewMail = Application.ActiveInspector.currentItem
End Sub
【问题讨论】:
-
如果没有选择任何内容,那么
ActiveInspector将是Nothing。不过,我不知道ActiveWindow怎么可能是Nothing。你把这段代码放在哪里,你是如何调用它的? -
代码在一个模块中,当用户手动运行宏或单击运行宏的菜单按钮时调用该过程。
-
能否贴出整个方法的代码?
-
这个脚本是从邮件窗口本身启动的吗?
-
已添加代码,这里不多说...
Set行出错,ActiveExplorer设置为空(或不存在)。正如我所说,这里可能有一些明显的我不明白的东西。顺便说一下,这是 Outlook VbaProject.OTM 文件。