Outlook 2016-使用CurrentItem.Saveas或CurrentItem.HTMLBody时出现“运行时错误'287':应用程序定义或对象定义的错误”

时间:2019-07-25 14:38:45

标签: vba outlook outlook-vba

我们有一个在“ Office 2010”下运行了很多年的Access数据库,但是现在我们必须更改为Office 365,并通过以下代码得到此烦人的错误:

Dim olAppSaida As Outlook.Application
Dim olItemSaida As Outlook.MailItem

Set olAppSaida = CreateObject("Outlook.application")

Set olItemSaida = olAppSaida.ActiveInspector.CurrentItem

If Not TypeName(olItemSaida) = "Nothing" Then
olItemSaida.SaveAs "C\TEstes\" & strProcesso & ".Msg", olMSGUnicode

End If

已检查对Outlook XX.X库的引用,但该行中出现错误:

 "olItemSaida.SaveAs "C\TEstes\" & strProcesso & ".Msg", olMSGUnicode"

请问有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

  1. 确保路径字符串正确。
  2. 尝试指定另一种要保存的类型-OlSaveAsType
  3. 从外部应用程序自动执行Outlook时,这可能是一个安全问题。有关更多信息,请参见"A program is trying to send an e-mail message on your behalf" warning in Outlook

答案 1 :(得分:0)

问题解决了。

这全都与Outlook 2016的安全策略有关。

现在代码像以往一样运行。

还是谢谢。

答案 2 :(得分:0)

正如@mariodcm所说,问题与安全策略有关。他为我指出了解决方案。简而言之:

发现它被以下策略阻止: HKEY_CURRENT_USER \ Software \ Policies \ Microsoft \ office \ 16.0 \ outlook \ security \ promptoomsend

密钥设置为0 =自动拒绝。将密钥更改为2 =自动批准解决了该问题。

更多信息: https://answers.microsoft.com/en-us/msoffice/forum/all/office-365-proplus-word-vba-sending-or-saving-mail/5654cfb4-9671-4900-aec4-93ee06e62c40