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

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

我的代码如下所示:

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中创build超链接来打开相应的电子邮件。 请帮助我在这种情况下。 谢谢!!!

一个简单的超链接将不允许在Outlook中打开邮件。 相反,您需要处理超链接单击(或button),并在Outlook中find相应的条目。 Excel工作簿上显示的属性不允许唯一标识邮件项目。 您可以使用EntryID值,但是当项目移动到Outlook中的另一个存储/文件夹时,它可能会发生更改。 这是MSDN所说的:

在商店中创build商品时,MAPI商店提供商会分配一个唯一的IDstring。 因此,在保存或发送之前,不会为Microsoft Outlook项目设置EntryID属性。 当项目被移入另一个存储区,例如从收件箱移到Microsoft Exchange Server公用文件夹,或从一个个人文件夹(.pst)文件移动到另一个.pst文件时,EntryID会发生更改。 解决scheme不应该依赖于EntryID属性是唯一的,除非项目不会被移动。

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

最后,您可能会发现Outlook 2010中的VBA入门文章很有帮助。