【问题标题】:Control already created Outlook message from excel VBA控制已经从 excel VBA 创建的 Outlook 消息
【发布时间】:2020-06-24 20:55:05
【问题描述】:

长期阅读,第一次信使(虽然不是我第一次开玩笑),

我想知道是否可以控制已创建的 Outlook 电子邮件。在工作中,我们必须从一个安全的网站下载新的工单,这主要归功于这个站点,我已经能够设置一个登录的宏,找到新的工单,然后单击按钮打开工单。单击此按钮后,将打开一个带有 pdf 文件的新 IE 窗口,并使用“通过电子邮件发送页面”命令创建新的 Outlook 消息。我有 Outlook 12 参考(使用 Office 2007),并且能够控制现有的 Outlook 会话以使用以下方法创建新电子邮件:

Dim SendOrder As Outlook.Application
Set SendOrder = GetObject(, "Outlook.Application")

但我不知道如何让它控制 IE 打开的电子邮件。我尝试使用 GetObject(, "Outlook.Application.MailItem) 和其他一些失败的想法,但我只有 3 个想法,所以我希望这里有人可以帮助我解决这个问题,否则我可能会有将文件保存在 IE 中并创建新的电子邮件,这似乎增加了一个额外的步骤。

【问题讨论】:

  • 您有机会尝试我建议的答案吗?

标签: vba outlook


【解决方案1】:

我认为你走在正确的道路上。这样的东西适用于从 Outlook 打开的 Outlook 邮件项。不过,我还没有在从 IE 打开的 mailItems 上测试它。

Sub GetAMailItem()

'## Requires reference to MS Outlook object library ##
Dim oApp As Outlook.Application
Dim mItem As MailItem

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

If TypeName(oApp.ActiveWindow) = "Inspector" Then
    Set mItem = oApp.ActiveWindow.CurrentItem
End If

Set oApp = Nothing

End Sub

找到了代码 here 的核心内容,只需进行一两次修改,即可为您提供一个可能适合您需求的结构化示例。

【讨论】:

  • ActiveWindow.CurrentItem 成功了,非常感谢您的帮助!
猜你喜欢
  • 2023-03-09
  • 2023-02-14
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-16
相关资源
最近更新 更多