Script VBA para alterar dinamicamente a linha de assunto nos e-mails recebidos para o Outlook 2013

3

Eu olhei este exemplo de script do Outlook, que é semelhante e um ótimo começo para mim: Script do Outlook para editar o assunto

No entanto, estou precisando alterar as linhas de assunto de mensagens recebidas na chegada em um método mais difícil que requer manipulação mais complexa de strings.

Este é, na verdade, o meu código base que usei, que funcionou até hoje:

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

Agora, os assuntos originais estão sempre no seguinte formato (qualquer coisa entre colchetes é uma variável):

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

Desejo remover o "[SOMETHING] - [SOMETHING] -" que está mudando dinamicamente como você pode ver e manter apenas:

Ticket [#] - [TITLE]

Desta forma, posso mais uma vez classificar / filtrar com facilidade no outlook. Como isso pode ser feito no VBA? Obrigado.

    
por Shackrock 21.12.2015 / 14:30

1 resposta

3

Sua melhor aposta é REGEX as partes que você quer, ou se você sabe que o formato é sempre neste formato, você pode dividir a string no - e tomar o primeiro e último.

Ao longo das linhas de:

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

Esse código é completamente não testado, mas esperamos que você esteja no caminho certo.

    
por 21.12.2015 / 14:54