У меня есть следующий код VBA, который запускается из Excel:Ответить и добавить текст в тело электронной почты с помощью Excel VBA
Sub olReply()
Dim objOL As Outlook.Application
Dim objMsg As Outlook.MailItem
Dim oReply As Outlook.MailItem
Dim objSelection As Outlook.Selection
Set objOL = CreateObject("Outlook.Application")
Set objSelection = objOL.ActiveExplorer.Selection
For Each objMsg In objSelection
Set oReply = objMsg.Reply
oReply.Body = "test" & objMsg.Body
oReply.Display
Next
Set objMsg = Nothing
Set objSelection = Nothing
Set objOL = Nothing
Set oReply = Nothing
End Sub
Я пытаюсь получить этот код, чтобы ответить на выбранный e- mail в Outlook и добавьте мой собственный текст («тест» выше) в начало оригинального текста электронной почты.
Я искал решение, и это должно быть довольно простым, но запуск этого кода приводит к ошибке «Run-time error» 287: «Определенная приложением или объектная ошибка».
Ошибка производится в следующем разделе:
oReply.Body = "test" & objMsg.Body
... и конкретно на objMsg.Body, как я шаг через код, используя F8. Если я изменил это с objMsg.Body на objMsg.Subject, например, код работает нормально, отвечая на электронную почту, добавляя мой собственный текст и строку темы исходного сообщения электронной почты.
Не уверен, что мне не хватает, поскольку я не являюсь профессионалом VBA, и это мой первый пост, поэтому надеемся, что вы, ребята, можете указать мне в правильном направлении или предложить альтернативу.
Заранее спасибо.
Извинения за поздний ответ, я только что смог попробовать ваше предложение. Вы правы, код отлично работает как макрос VBA в Outlook. Знаете ли вы, что обходное решение учитывает проблему безопасности «Object Model Guard»? – gunny78
См. [Outlook "Объектная модель Guard" Проблемы безопасности для разработчиков] (http://www.outlookcode.com/article.aspx?id=52) для возможных вариантов. –