我可以在VBA中访问Outlook电子邮件联系人字段吗?

时间:2008-12-14 17:23:48

标签: outlook

我想访问outlook中的电子邮件(电子邮件选项)上的联系人字段。通常,此字段将电子邮件与联系人绑定。由于它是可从选项对话框中获得的自由格式文本字段,因此我尝试使用它来存储电子邮件的“下一步操作”。我想基于主题设置下一个操作,但我无法弄清楚如何从outlook.mailitem对象访问thas字段

由于 吉姆

3 个答案:

答案 0 :(得分:1)

我认为这将回答它:该字段隐藏在半通用的“链接”属性中,具有olContact类型。要测试以下代码,请打开一封新电子邮件,在联系人字段中输入内容,然后运行代码:

Sub ShowContactsField()
  Dim objApp As Outlook.Application
  Dim ActiveMailItem As Inspector
  Dim currLink As Link

Set objApp = CreateObject("Outlook.Application") If TypeName(objApp.ActiveWindow) = "Inspector" Then If objApp.ActiveInspector.CurrentItem.Class = olMail Then For Each currLink In objApp.ActiveInspector.CurrentItem.Links If currLink.Type = olContact Then MsgBox currLink.Name End If Next End If End If Set objApp = Nothing End Sub

总的来说,我同意奥利弗;这可能不是存储您正在寻找的东西的最佳位置,但至少它是以原生形式暴露的。检查字段长度,我认为它可能限制为255。

答案 1 :(得分:0)

嗯,我也无法弄清楚如何访问“联系人”字段,但是根据您的描述,听起来您根本不打算将其用于预期目的,而只需要关联一些任意字符串带有电子邮件项目的数据。如果这是正确的,我建议改为在UserProperties集合中添加字段。

答案 2 :(得分:0)

通过使用oMailItem对象的Links属性,可以更轻松地获取联系人列表:

    For i = 1 To mailItem.Links.Count
        If mailItem.Links.item(i).Type = olContact Then
                Debug.Print mailItem.Links.item(i).Name
        End If
Next i