У меня есть следующий код, который я взял, niton (VBA для пересылки писем в Outlook).
Private Sub objInboxItems_ItemAdd(ByVal item As Object)
Dim objMail As MailItem
Dim objForward As MailItem
Dim beginStr As String
Dim lenBegin As Long
beginStr = "Report - Daily Sales"
lenBegin = Len(beginStr)
If TypeOf item Is MailItem Then
Set objMail = item
'New email where the "beginning is the same"
If Left(objMail.Subject, lenBegin) = beginStr Then
Set objForward = objMail.Forward
'Customize the forward subject, body and recipients'
With objForward
.Subject = "Daily Sales Report as of: " + Format(Now(), "mm/dd/yyyy")
.HTMLBody = objForward.HTMLBody
.Recipients.Add ("Rkartye@freebirds.com")
.Display '.Send
End With
End If
End If
End Sub
Он отлично работает и меняет тему, но я не могу понять, как удалить текст из тела. Я удалю весь текст и оставлю только изображения, если есть функция для этого, было бы лучше, если нет хорошего учебника или примера о том, как использовать замену и регулярное выражение с заменой? Достойно в VBA в Excel, но впервые в Outlook.
Спасибо
1 ответ
Я вижу, вы работаете с objForward.HTMLBody — вот регулярное выражение, которое я пробовал на regex101.com:
(<(img|IMG) [^>]+>)
Что я тестировал со следующей строкой
<HTML><BODY>This is text <img src="https://example.com/path/test.img" /> and then <IMG src="https://example.com/path/test2.img" /></BODY></HTML>
Вы можете использовать это, чтобы вытащить все спички, а затем обернуть их новым набором тегов и.
Надеюсь, это поможет, но я, к сожалению, не могу помочь с VBA для кода для настройки поиска по регулярным выражениям — однако вот ссылка, которая может предоставить пример на этом фронте:
https://stackoverflow.com/questions/65195118/regular-expression-in-excel-vba-to-perform-exact-match