Как получить только одну выбранную почту с помощью VBA (Outlook) - PullRequest
0 голосов
/ 18 марта 2019

У меня есть этот код:

Sub GetSelectedItems()
 Dim myOlExp As Outlook.Explorer
 Dim myOlSel As Outlook.Selection
 Dim mySender As Outlook.AddressEntry
 Dim oMail As Outlook.MailItem
 Dim oAppt As Outlook.AppointmentItem
 Dim oPA As Outlook.PropertyAccessor
 Dim strSenderID As String
 Const PR_SENT_REPRESENTING_ENTRYID As String = _
 "http://schemas.microsoft.com/mapi/proptag/0x00410102"
 Dim MsgTxt As String
 Dim x As Long

 MsgTxt = ""
 Set myOlExp = Application.ActiveExplorer
 Set myOlSel = myOlExp.Selection
 For x = 1 To myOlSel.Count
 If myOlSel.Item(x).Class = OlObjectClass.olMail Then
 ' For mail item, use the SenderName property.
 Set oMail = myOlSel.Item(x)
 MsgTxt = MsgTxt & oMail.Body

 ElseIf myOlSel.Item(x).Class = OlObjectClass.olAppointment Then
 ' For appointment item, use the Organizer property.
 Set oAppt = myOlSel.Item(x)
 MsgTxt = MsgTxt & oAppt.Organizer & ";"
 Else
 ' For other items, use the property accessor to get sender ID,
 ' then get the address entry to display the sender name.
 Set oPA = myOlSel.Item(x).PropertyAccessor
 strSenderID = oPA.GetProperty(PR_SENT_REPRESENTING_ENTRYID)
 Set mySender = Application.Session.GetAddressEntryFromID(strSenderID)
 MsgTxt = MsgTxt & mySender.Name & ";"
 End If
 Next x
 Debug.Print MsgTxt
End Sub

Когда я запускаю этот код, я получаю тело выбранной почты.Но я получаю почту со всей веткой в ​​текущей выбранной почтеИтак, я хочу получить только одно выбранное письмо без ветки.

Как это сделать?

1 Ответ

0 голосов
/ 27 марта 2019

Есть только одно тело сообщения. Он не разделяется на отдельные части, созданные во время обмена ответом / пересылкой. Вы несете ответственность за анализ основного текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...