Outlook VBA - заменить текст в теле и сохранить - PullRequest
0 голосов
/ 30 апреля 2020

Я получаю электронные письма, содержащие ссылку, но, к сожалению, эта ссылка не работает, так как я не в сети этой компании. Однако я могу изменить часть ссылки для внешнего использования, чтобы заставить ее работать. Я пытаюсь автоматизировать необходимость сделать это, так как я получаю много из них и мне приходится go к каждой ссылке несколько раз.

Например, электронное письмо, которое я получаю, имеет следующую ссылку:

https: //ipdms.web.companyname.com/ipdms/itemlocation

Если я изменю его на это, ссылка будет работать:

https: // companyVPN .companyname.com / ipdms / itemlocation

Мне удалось создать сценарий в Outlook, чтобы изменить его, но мне нужно открыть электронное письмо, запустить макрос и нажать «Сохранить». электронная почта. Это на самом деле не экономит много времени.

Sub Change2VPN()

Application.ActiveInspector.CurrentItem.body = Replace(Application.ActiveInspector.CurrentItem.body, "ipdms.web", "companyVPN")

End Sub

Я пытался искать, но не смог заставить что-либо работать. Есть ли способ, которым я могу выполнить sh это для всех элементов в папке и сохранить электронную почту там, где она есть, или, по крайней мере, сделать это прямо из области чтения в Outlook? Я могу добавить кнопку макроса на ленту. Я также не могу запускать сценарии, как правило, на входящие письма из-за блокирования этой опции корпоративными политиками.

Спасибо!

1 Ответ

0 голосов
/ 04 мая 2020

В основном вам нужно получить выбранную в данный момент папку, в которой была нажата кнопка ленты, и перебрать все элементы в папке, чтобы выполнить работу:

Sub Change2VPN()

Dim olFolder As Outlook.Folder
Dim Item As Object
Dim explorer as Outlook.Explorer


Set explorer = Application.ActiveExplorer()
Set olFolder = explorer.CurrentFolder

For Each Item In olFolder.Items
    If TypeOf Item Is Outlook.MailItem Then 
        Dim oMail As Outlook.MailItem: Set oMail = Item
        oMail.HTMLBody = Replace(oMail.HTMLBody, "ipdms.web", "companyVPN")
        oMail.Save()
    End If
Next

End Sub

...