2015-12-02 25 views
0

收到電子郵件後,我想將發件人的名字提取到電子郵件正文中,以避免名稱錯別字。提取發件人的名字

我管理的名稱和姓氏,但我不能提取和顯示名字只。

下面是代碼:

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 

回答

0

只需更換這行:

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

爲什麼你假設有一個姓氏和名字?您所得到的只是一個顯示名稱 - 它可以只是電子郵件地址,或者是發件人想要顯示的任何內容。您當然可以自由解析顯示名稱,前提是它將採用「first last」或「last first」格式。或「第一中間最後」。或者任何其他格式。

如果是Exchange發件人,您當然可以從MailItem.Sender中檢索AddressEntry對象,並檢查AddressEntry.GetExchangeUser是否不爲空。如果你有一個有效的對象,你可以使用ExchangeUser.FirstNameExchangeUser.LastName