Ваш макрос ничего не делает, потому что параметр MyMail
, но макрос изменяет тело objItem
.
Удалить Dim objItem As Outlook.MailItem
Заменить objItem
на MyMail
в:
strHTMLBody = objMail.HTMLBody
objMail.HTMLBody = strHTMLBody
objMail.Save
Я полагаю, у вас нет Option Explicit
в верхней части вашего модуля.Это хорошая практика, потому что это делает ошибку такого типа более трудной для принятия.Я получаю сообщение об ошибке компиляции с вашим кодом.
Я предполагаю, что "вместо" заменяет реальное слово, которое вы хотите выделить.Если настоящее слово неясно, тогда не должно быть проблем.Однако, если строка «the» является частью URL-адреса или аналогичной, этот код испортит электронную почту.
Я не использовал правило для проверки вашего кода.Я выбрал старую электронную почту, которую был счастлив испортить, и запустил этот код:
Sub TestHighlight()
Dim Exp As Explorer
Dim ItemCrnt As MailItem
Set Exp = Outlook.Application.ActiveExplorer
If Exp.Selection.Count = 0 Then
Call MsgBox("Please select one or more emails then try again", vbOKOnly)
Exit Sub
Else
For Each ItemCrnt In Exp.Selection
Call Highlight_AllOccurencesOfSpecificWords(ItemCrnt)
Next
End If
End Sub
Я рекомендую эту технику, которую я использую для тестирования почти всех моих макросов Outlook.