2015-04-10 2 views
0

У меня есть следующий код 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, и это мой первый пост, поэтому надеемся, что вы, ребята, можете указать мне в правильном направлении или предложить альтернативу.

Заранее спасибо.

ответ

0

я предлагаю запустить следующий макрос VBA в Outlook:

Sub olReply() 
Dim objOL As Outlook.Application 
Dim objMsg As Outlook.MailItem 
Dim oReply As Outlook.MailItem 
Dim objSelection As Outlook.Selection 
Set objOL = 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 

Вы получаете какие-либо ошибки в этом случае?

Если нет, вы получаете стандартную проблему безопасности «объектной модели». См. Outlook "Object Model Guard" Security Issues for Developers для получения дополнительной информации.

+0

Извинения за поздний ответ, я только что смог попробовать ваше предложение. Вы правы, код отлично работает как макрос VBA в Outlook. Знаете ли вы, что обходное решение учитывает проблему безопасности «Object Model Guard»? – gunny78

+0

См. [Outlook "Объектная модель Guard" Проблемы безопасности для разработчиков] (http://www.outlookcode.com/article.aspx?id=52) для возможных вариантов. –