Preciso de ajuda para criar uma macro VBA no Outlook 2010 que converta uma ou mais mensagens selecionadas em formatação de texto sem formatação. Estou procurando uma macro em vez de uma regra de entrada de e-mail.
Eu encontrei o seguinte código que funciona como regra, mas para que eu possa usá-lo, eu tenho que colocar as mensagens em uma pasta e executar a regra manualmente:
link
Sub ConvertToPlain(MyMail As MailItem)
Dim strID As String
Dim objMail As Outlook.MailItem
strID = MyMail.EntryID
Set objMail = Application.Session.GetItemFromID(strID)
objMail.BodyFormat = olFormatPlain
objMail.Save
Set objMail = Nothing
End Sub
Eu encontrei algum código há algum tempo que é capaz de remover todos os anexos das mensagens selecionadas, que funciona perfeitamente para minhas necessidades e, se possível, estou tentando duplicar sua funcionalidade; no entanto, em vez de mexer com anexos, quero converter a mensagem em texto sem formatação.
link
Sub RemoveAttachments()
Dim myAttachment As Attachment
Dim myAttachments As Attachments
Dim selItems As Selection
Dim myItem As Object
Dim lngAttachmentCount As Long
' Set reference to the Selection.
Set selItems = ActiveExplorer.Selection
' Loop though each item in the selection.
For Each myItem In selItems
Set myAttachments = myItem.Attachments
lngAttachmentCount = myAttachments.Count
' Loop through attachments until attachment count = 0.
While lngAttachmentCount > 0
myAttachments(1).Delete
lngAttachmentCount = myAttachments.Count
Wend
myItem.Save
Next
MsgBox "All Done. Attachments were removed.", vbOKOnly, "Message"
Set myAttachment = Nothing
Set myAttachments = Nothing
Set selItems = Nothing
Set myItem = Nothing
End Sub
Meu melhor esforço em combinar o 2 é o seguinte:
Sub ConvertPlainText()
Dim selItems As Selection
Dim myItem As Object
Dim lngAttachmentCount As Long
Dim strID As String
Dim objMail As Outlook.MailItem
' Set reference to the Selection.
Set selItems = ActiveExplorer.Selection
' Loop though each item in the selection.
For Each myItem In selItems
Set myAttachments = myItem.Attachments
lngAttachmentCount = myAttachments.Count
strID = MyMail.EntryID
Set objMail = Application.Session.GetItemFromID(strID)
objMail.BodyFormat = olFormatPlain
objMail.Save
myItem.Save
Next
MsgBox "All Done. Email converted to Plaintext.", vbOKOnly, "Message"
Set objMail = Nothing
Set selItems = Nothing
Set myItem = Nothing
End Sub
Mas recebo um erro que afirma "Objeto obrigatório", começando com a linha:
strID = MyMail.EntryID
Qualquer ajuda seria muito apreciada !!