从Outlook电子邮件自定义字段中提取值,并填充Excel

时间:2015-05-11 10:02:18

标签: vba outlook outlook-vba

我设计了一个包含多个自定义字段的Outlook电子邮件表单。一个是“参考编号”,一个名为“TextBox1”的自由文本框: enter image description here

我正在尝试显示该文本框的内容,以便稍后可以填充Excel,使用它作为第一步只显示内容(不起作用)......

    MsgBox (msg.UserProperties.Find("TextBox1", Outlook.OlUserPropertyType.olText).Value)

任何人都可以帮我纠正这一行吗?我希望消息框显示“1234567”。 一旦我做对了,我就可以将值复制到Excel表格中。

非常感谢你的时间。

沙恩 (英国韦瑟比)。

编辑: 以下是更完整的代码,显示了对象的声明和赋值:

Dim rng As Excel.Range
Dim msg As Outlook.MailItem
Dim nmspace As Outlook.NameSpace
Dim folder As Outlook.MAPIFolder
Dim item As Object

Set nmspace = Application.GetNamespace("MAPI")
Set folder = nmspace.PickFolder

'Look at each email message in a folder
For Each item In folder.Items
    intColumnCounter = 1
    Set msg = item
    intRowCounter = intRowCounter + 1
    Set rng = wks.Cells(intRowCounter, intColumnCounter)
    rng.Value = msg.To

...这里有更多项目来接收发件人地址,主题,发送日期等)...

    MsgBox (msg.UserProperties.Find("TextBox1", Outlook.OlUserPropertyType.olText).Value)
    'This is the field whose value I want to take for Excel
Next item

第二次编辑: 这是对象高级属性的屏幕抓取:

enter image description here

这是在电子邮件模板中输入的“普通”自由文本框。它有正确的名称(TextBox1),甚至有正确的值(1234567)。但不知何故,我无法获取代码来读取1234567的值并将其显示在消息框中。 我很难过。它需要一个比我聪明的人!感谢所有正在思考这个的人。

1 个答案:

答案 0 :(得分:1)

已解决!!! (为喊叫道歉)。 早些时候的回复让我思考。我尝试了这一行:

MsgBox (msg.UserProperties.Find("New - Study Number").Value)

as" New-Study Number"是用于字段名称的内容:

enter image description here

我认为我的问题的一部分是我对各种用法(属性名称,字段名称,控件名称)和VBA字段属性框感到困惑有点不清楚。 尽管如此 - 感谢所有贡献者;我希望这有助于其他人! 8)