提取发件人的名字

时间:2015-12-02 17:04:40

标签: vba outlook outlook-vba

收到电子邮件后,我想将发件人的名字提取到电子邮件正文中,以避免姓名拼写错误。

我使用姓名和姓氏管理,但我无法提取并仅显示名字。

以下是代码:

Sub Dodanie_imienia()
On Error GoTo brak_aktywnego
Dim objItem As MailItem: Set objItem = Application.ActiveExplorer.Selection.Item(1)
On Error GoTo 0
Dim objInsp As Outlook.Inspector: Set objInsp = objItem.GetInspector
Dim objDoc As Object: Set objDoc = objInsp.WordEditor 'Word.Document
Dim objWord As Object: Set objWord = objDoc.Application 'Word.Application
Dim objSel As Object: Set objSel = objWord.Selection 'Word.Selection
Dim objItem2 As Object: Set objItem2 = Application.ActiveExplorer.Selection.Item(1)
Dim tekst$: tekst = "Hi " & objItem2.SenderName & "," & vbNewLine & vbNewLine

 objSel.TypeText tekst

Exit Sub
brak_aktywnego:
 If Err.Number = 91 Then _
 MsgBox "Utwórz wiadomość do edycji.", vbExclamation, "LB" Else _
 MsgBox Err.Number & " " & Err.Description, vbExclamation, "LB"
End Sub

2 个答案:

答案 0 :(得分:1)

为什么你认为有名字和姓氏?你得到的只是一个显示名称 - 它可以只是电子邮件地址,也可以是发件人想要显示的任何内容。您当然可以自由地解析显示名称,假设它的格式为“#34; first last"或者"最后,第一个"。或者"第一个中间的最后一个"。或任何其他格式。

如果是Exchange发件人,您当然可以从AddressEntry检索MailItem.Sender对象,并检查AddressEntry.GetExchangeUser是否为空。如果您有有效对象,则可以使用ExchangeUser.FirstNameExchangeUser.LastName

答案 1 :(得分:0)

只需替换此行:

Dim tekst$: tekst = "Hi " & Split(objItem2.SenderName)(0) & "," & vbNewLine & vbNewLine