Outlook 中的 VBA:“Microsoft Outlook 已停止工作”消息

Posted

技术标签:

【中文标题】Outlook 中的 VBA:“Microsoft Outlook 已停止工作”消息【英文标题】:VBA in Outlook: "microsoft outlook has stopped working" message 【发布时间】:2012-07-05 09:54:48 【问题描述】:

我尝试编写一个 VBA 脚本,它会自动回复共享邮箱收件箱中的邮件。目前这只是一个测试,稍后我想回复新收到的邮件。 但是,到目前为止,如果我尝试运行代码,Outlook 会崩溃并显示错误“microsoft Outlook 已停止工作”,我必须重新启动 Outlook。

仅供参考:我使用的是德语 Outlook 2007 版。

Sub ReplyMail()

Dim myOutApp As Object
Dim myNameSpace As Object
Dim myMailFolder As Object
Dim myRecipient As Outlook.Recipient

boxName = "sharedmailbox@host.de"      'configure mailbox address here

'Get Mailbox folder
Set myOutApp = CreateObject("Outlook.application")
Set myNameSpace = myOutApp.GetNamespace("MAPI")
Set myRecipient = myNameSpace.CreateRecipient(boxName)
    myRecipient.Resolve         'convert mail address into mailbox name
Set myMailFolder = myNameSpace.GetSharedDefaultFolder(myRecipient, olFolderInbox)

Dim Item As Object
Set Item = myMailFolder.Items(1)

Dim oMail As Outlook.MailItem
Set oMail = Item.Reply
With oMail
    .BodyFormat = olFormathtml
    .HTMLBody = "<HTML>This is a test mail.</HTML>"     
    .Send
End With

End Sub

如果使用“.display”而不是“.send”,邮件会正确弹出,我可以手动发送邮件。

我真的不知道如何解决这个错误,请帮助!

谢谢!

迈克尔

【问题讨论】:

【参考方案1】:

很奇怪! 除非它是一个特殊的错误,否则我看不到它。 小备注:将您的对象声明为 Outlook 对象:

Dim myOutapp as outlook.application 
Dim myNameSpace as outlook.namespace
Dim myMailFolder as Mapifolder

这用于一般性能(Object 是一般类型),但它几乎肯定不会解决您的问题。

如果我遇到您的情况,我会尝试从内存中完全退出 Outlook,修复或重新安装 Outlook/Office。我不认为您的代码有什么大问题。由于 .display 有效,我很惊讶。

【讨论】:

另一件有趣的事情是,在我重新启动已损坏的 Outlook 后会出现回复邮件。在其他论坛中,我读到有些人收到安全消息,有些程序想要自动发送电子邮件,但我没有。会不会有问题? 老实说,我不知道。在处理附件时,我已经完成了一些自动发送电子邮件和从邮箱(也是网络上的功能邮箱)中检索邮件的自动化,我从未遇到过任何问题。我在互联网上读到其他人在 Outlook 自动化方面遇到问题,有时在重新安装或修复 OL 应用程序后得到解决。您不能显示而不是发送吗?在我工作的前一家公司,甚至违反一般规则,在发送前没有明确修改就自动发送邮件。【参考方案2】:

访问权限可能存在问题 C:\用户\

从某个时间点开始打开某些电子邮件时,我遇到了类似的问题。不知何故,对该文件夹的访问权限已被取消配置。 所以我按照这个程序,一切都很好了: http://www.addictivetips.com/windows-tips/windows-7-access-denied-permission-ownership/

【讨论】:

您可以通过至少包含链接中的一些信息来改进您的答案,以防有一天它中断。

以上是关于Outlook 中的 VBA:“Microsoft Outlook 已停止工作”消息的主要内容,如果未能解决你的问题,请参考以下文章

OutLook VSTO 获取当前活的邮件信息

使用 VBA 访问 Outlook 中的文件夹

从 Access 中的 VBA 调用时 Outlook.exe 进程未结束

使用电子邮件 Outlook 中的链接触发 VBA 代码

如何使用excel vba,对outlook进行操作?

Outlook日历(VBA)中的Items.Restrict约会