在Excel中创建超链接以通过VBA打开特定的电子邮件Outlook

时间:2015-05-07 03:41:38

标签: excel vba email hyperlink outlook

我在Outlook中编写VBA代码,将所有电子邮件信息跟踪到1个Excel文件。 对于每封电子邮件,我会将信息放在一行Excel中。我想在Excel文件中添加一个超链接来打开相应的电子邮件。

我的代码如下所示:

Set objFD = objNS.Folders("dtk142@aaaa.com")
Set objToFD = objFD.Folders("Inbox")
For Each Msg In objToFD.Items
        '' mail information
        mDate = Msg.ReceivedTime
        mSubject = Msg.Subject
        mSender = Msg.SenderName
        mSAddress = Msg.SenderEmailAddress

        ' put to excel
        xlTmp.Sheets("RequestTracker").Cells(cntrow, 1).Value = cntID
        xlTmp.Sheets("RequestTracker").Cells(cntrow, 2).Value = mDate
        xlTmp.Sheets("RequestTracker").Cells(cntrow, 3).Value = "Email"
        xlTmp.Sheets("RequestTracker").Cells(cntrow, 5).Value = mSAddress
        xlTmp.Sheets("RequestTracker").Cells(cntrow, 7).Value = user
        xlTmp.Sheets("RequestTracker").Cells(cntrow, 11).Value = mSubject

        '' code to add hyperlink to the email item here

        cntrow = cntrow + 1
        cntID = cntID + 1
    Next
Next

现在我无法在excel中创建超链接以打开相应的电子邮件。在这种情况下请帮助我。谢谢!!!

1 个答案:

答案 0 :(得分:0)

一个简单的超链接将不允许在Outlook中打开邮件。相反,您需要处理超链接单击(或按钮)并在Outlook中查找相应的条目。 Excel工作簿上显示的属性不允许唯一标识邮件项。您可以使用EntryID值,但可以在将项目移动到Outlook中的其他商店/文件夹时进行更改。这是MSDN所说的:

  

MAPI商店提供程序在其商店中创建项目时分配唯一的ID字符串。因此,在保存或发送Microsoft Outlook项目之前,不会为其设置EntryID属性。当项目移动到另一个商店时,例如,从您的收件箱移动到Microsoft Exchange Server公用文件夹,或从一个个人文件夹(.pst)文件移动到另一个.pst文件,EntryID会更改。解决方案不应该依赖于EntryID属性是唯一的,除非不移动项目。

作为一种变通方法,您可以使用自己生成的ID向Outlook项目添加用户属性(请参阅UserProperties.Add),并将其与其他人类可读属性一起存储在Excel行中。

最后,您可能会发现Getting Started with VBA in Outlook 2010文章很有帮助。