Outlook 2010'da, seçilen bir veya daha fazla iletiyi Düz Metin biçimlendirmesine dönüştürecek bir VBA Makrosu oluşturma konusunda yardıma ihtiyacım var. Gelen bir posta kuralı yerine bir makro arıyorum.
Kural olarak çalışan aşağıdaki kodu buldum, ancak kullanabilmem için mesajları bir klasöre koyup kuralı manuel olarak çalıştırmam gerekiyor:
http://www.outlookcode.com/article.aspx?id=62
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
Bir süre önce, seçilen iletilerdeki tüm ekleri kaldırabilen, gereksinimlerime mükemmel şekilde uyan bir kod buldum ve mümkünse, işlevselliğini çoğaltmaya çalışıyorum; ancak, eklerle uğraşmak yerine, iletiyi Düz Metne dönüştürmesini istiyorum.
http://www.slipstick.com/developer/code-samples/delete-attachments-messages/
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
2'yi birleştirmedeki en iyi çabam şu şekilde:
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
Ancak satırdan başlayarak "Nesne gerekli" ifadesini içeren bir hata alıyorum:
strID = MyMail.EntryID
Herhangi bir yardım çok takdir edilecektir!
MyMail.EntryID
. İlk rutininizde MyMail
parametre olarak geçilir ConvertToPlain(MyMail As MailItem)
. Düzeltmek için yeterli VBA bilmiyorum ama bu, kendin düzeltmek için yeterli ipucu vermeli.