3

Я посмотрел на этот пример сценария Outlook, который похож и отличный пример для меня: Outlook Script для редактирования темы

Однако мне нужно изменить строки темы входящего сообщения по прибытии более сложным способом, который требует более сложных манипуляций со строками.

Это на самом деле мой базовый код, который я использовал, который работал до настоящего времени:

Sub ConvertToPlain(MyMail As MailItem)
    Dim strID As String
    Dim objMail As Outlook.MailItem

    strID = MyMail.EntryID
    Set objMail = Application.Session.GetItemFromID(strID)
    objMail.Subject = Left(objMail.Subject, 18)
    objMail.Save

    Set objMail = Nothing
End Sub

Теперь, я исходные предметы всегда в следующем формате (все, что в скобках является переменной):

Ticket [#] - [SOMETHING] - [SOMETHING] - [TITLE]

Я хочу удалить «[ЧТО-ТО] - [ЧТО-ТО] -», который динамически меняется, как вы можете видеть, и оставить только:

Ticket [#] - [TITLE]

Таким образом, я могу еще раз легко отсортировать / отфильтровать в перспективе. Как это можно сделать в VBA? Спасибо.

1 ответ1

3

Лучше всего либо РЕГЕКСировать те части, которые вы хотите, либо, если вы знаете, что формат ВСЕГДА в этом формате, вы можете разбить строку на - и взять первую и последнюю.

По линии:

Sub ConvertToPlain(MyMail As MailItem)
    Dim strID As String
    Dim objMail As Outlook.MailItem
    Dim splitSubject() as String
    Dim concatSubject as String

    strID = MyMail.EntryID
    Set objMail = Application.Session.GetItemFromID(strID)
    splitSubject = Split(objMail.Subject, "-")
    concatSubject = splitSubject(LBound(splitSubject)) & " - " & splitSubject(UBound(splitSubject))
    objMail.Subject = concatSubject
    objMail.Save

    Set objMail = Nothing
End Sub

Этот код полностью не проверен, но, надеюсь, в некоторой степени направит вас в нужное русло.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .