是否可以在 Excel VBA 中读出特定主题的 Outlook?

Posted

技术标签:

【中文标题】是否可以在 Excel VBA 中读出特定主题的 Outlook?【英文标题】:Is it possible in Excel VBA to read out Outlook for specific Subjects? 【发布时间】:2019-02-15 20:57:10 【问题描述】:

我在学习实践时经常使用您的网站。虽然这我必须为一家公司编写 VBA thingys。

虽然这是我自己坚持的,但到目前为止我对一切都很好。

我的最后一个项目是一个列表,包含以下步骤:

    使用来自其他工作簿的新数据更新自身(检查)

    向一组特定人员发送电子邮件,其中包含个人数据作为 excel 工作簿(另请检查)

    接收来自该组人员的值可能已更改和更正的邮件。 (进行中……不知道怎么去)

最后一点让我很困扰,因为如果有办法得到这个就不容易了。该公司使用 Excel/Office 2017 和 Outlook。

我想通过 Outlook 应用程序查看特定主题。然后从此邮件中打开 excel 工作簿,并更正项目的数据。

我环顾四周,发现一些旧线程此时不再工作。有人可以用“不,不可能”或“是的,你可以这样做”来回答这个问题:D 非常感谢各位。

【问题讨论】:

“是的,你可以做到这一点”.. 你必须决定的是一种基于你的要求的方法。首先,您想如何检查电子邮件:您想运行 Excel 宏来查找这些电子邮件吗?或者您是否希望 Outlook 在您每次收到来自该组或个人的电子邮件时提示您?一旦你决定了,那么下一步将基于你想走的路线。我怀疑,您是否希望 Outlook 在收到电子邮件后触发 Excel 宏来更新 数据 感谢您的快速回复。好吧,我看到了你的结构。我的老板每周必须这样做一次,他只是想确保项目成本等在他的清单中是正确的。所以他把它发送给一个项目经理列表(点击一下),他们检查它,也许会改变它并把它发回。在我看来,只需点击 2 个按钮,点击按钮(不是最专业的用途,而是我老板喜欢的那个)就足以触发一切。 1 用于实现其他工作簿中的数据并发送电子邮件,另一个按钮用于检查特定主题的电子邮件历史记录 例如 ("Projectcostlist KW32") 然后检查 emailadress 是否发送一个并将其与旧的 Projectcost 数据进行比较。唯一的问题是我找不到任何可以访问 Outlook 收件箱的东西......我找到了很多例子,但我想出于安全原因,它不再可能了......我的问题是我找不到观看 Outlook 的功能makrobuttonpress 后没有个人存储文件夹的收件箱。 【参考方案1】:

是的,这绝对是可能的。您需要使用“主题”属性:

有关此属性的一些其他文档,以及 microsoft 的示例,请参阅此处: https://docs.microsoft.com/en-us/office/vba/api/outlook.mailitem.subject

这是一个快速而肮脏的示例——您可能需要调试这个示例,但它应该可以帮助您完成大部分工作。此子将显示您当前选择的电子邮件主题的 MsgBox

Sub Selected_Email_Subject()

    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set GetCurrentItem = OutApp.ActiveInspector.CurrentItem


    If GetCurrentItem Is Nothing Then
            Set GetCurrentItem = olApp.ActiveExplorer.Selection.Item(1)
    End If


    MsgBox(GetCurrentItem.Subject)

End Sub

【讨论】:

非常感谢它的完美运行。可悲的是,我没有进入 Outlook vba 部分。并且没有智能感知,所以当我想要特定主题时,我不知道如何正确更改它。不是当前或最新的电子邮件主题 ^.^'。我怎么做?就像通过邮件索引列表或类似这样的东西来检查每封电子邮件的正确主题。感谢大家的快速支持 您可以采用不同的方式来解决这个问题。我想到的两个是循环浏览您的活动选择,或循环浏览文件夹中的所有邮件项目。在循环中添加一些条件以检查每个循环的主题属性。 如果你想要智能感知,而不是使用 Set OutApp = CreateObject("Outlook.Application"),请在首选项中参考 Outlook 非常感谢你们的提示,intellisense 最终帮助了我,对于其他人来说,这里有一个视频链接,完美地解释了如何使用 vba 将数据导入 excel:youtube.com/watch?v=2McAc8eXqkc 最良好的祝愿

以上是关于是否可以在 Excel VBA 中读出特定主题的 Outlook?的主要内容,如果未能解决你的问题,请参考以下文章

在excel中如何用vba来实现查找特定的字符串?

excel中怎样用vba使单元格在特定条件下才可以编辑?

Excel VBA根据条件从一个工作表复制到其他工作表特定单元格

使用excel vba将特定文本行保留在单元格中以获取特定起始字母

从excel VBA转到word doc中的特定行

如何暂停特定的时间? (Excel/VBA)