首页 文章

从打开/活动的Outlook电子邮件/窗口中获取ID号,在Excel中找到它并将用户带到包含值的行

提问于
浏览
-2

我在电子邮件中包含了一个网址,如下所示:

电子邮件:

This is some text
ID: 4

Url: C:\mySpreadhseet.xls

我的电子表格:

Row 1    Column A         Column B
Row 2     ID               
Row 3     1
Row 4     2
Row 5     3
Row 6     4

用户可以单击电子邮件中的URL来打开我的电子表格,在使用VBA的工作簿打开事件中,我想添加一个代码,该代码将扫描Outlook中已打开的电子邮件/活动窗口,以查找电子邮件正文中的ID号,然后在我的电子表格中,我希望它滚动并突出显示包含该ID号的行 .

因此,在这种情况下,用户将被带到我的电子表格中的第6行,整个行将被突出显示 .

到目前为止,我一直在研究如何使用VBA引用Outlook中打开的电子邮件或活动窗口,但我不确定如何利用它来完成我需要的操作 .

请有人指出我正确的方向并告诉我如何做到这一点?

研究了引用活动Outlook窗口的源代码:

Set objItem = GetCurrentItem()


Function GetCurrentItem() As Object
    Dim objApp As Outlook.Application

    Set objApp = Application
    On Error Resume Next
    Select Case TypeName(objApp.ActiveWindow)
        Case "Explorer"
            Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
        Case "Inspector"
            Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
    End Select

    Set objApp = Nothing
End Function

1 回答

  • 0

    objItem 对象表示Outlook中的选定项 . 如果它不为null,那么您可以在邮件正文中查找ID . Outlook对象模型提供了三种使用项主体的主要方法:

    • Body - 表示Outlook项目的明文正文的字符串 .

    • HTMLBody - 表示指定项目的HTML正文的字符串 .

    • Word editor - 正在显示的消息的Microsoft Word文档对象模型 . Inspector类的WordEditor属性从Word对象模型返回Document类的实例,您可以使用该实例来设置消息正文 .

    您可以在Chapter 17: Working with Item Bodies中阅读有关所有这些方法的更多信息 . 我们取决于您选择查找ID的方式 .

    然后,您可以自动化Excel以打开邮件项目文件中提到的内容并导航电子邮件中指定的行 . 有关更多信息,请参见How to automate Microsoft Excel from Visual Basic .

    最后,您可能会发现以下文章有用:

相关问题