我在电子邮件中包含了一个网址,如下所示:
电子邮件:
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 回答
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 .
最后,您可能会发现以下文章有用:
Getting Started with VBA in Outlook 2010
Getting Started with VBA in Excel 2010