访问 Outlook VBA 对象模型时单词冻结

Posted

技术标签:

【中文标题】访问 Outlook VBA 对象模型时单词冻结【英文标题】:Word freezing when accessing Outlook VBA object model 【发布时间】:2022-01-21 07:02:59 【问题描述】:

Office 365

word 中的 VBA 用于发送电子邮件。该代码已成功用于许多计算机,但在使用CreateObject 访问对象模型时,特别是在代码一开始就出现了单词冻结。如果 Outlook 处于打开状态,它可以正常工作,但关闭它会冻结,其他计算机在这两种情况下都可以正常工作。

Dim objOL          As Object
Dim objEmailItem   As Object

Set objOL = CreateObject("outlook.application")      '*** Freezing  ***
Set objEmailItem = objOL.createItem(varOlmailitem)

我尝试卸载office并重新安装它,停止杀毒软件,重新启动。

谢谢。

【问题讨论】:

***.com/questions/31852391/… 如果只有一台计算机,则很有可能需要完全卸载然后重新安装 Office。也可以尝试修复,比较快。 当您尝试自动化时,Outlook.exe 是否仍会挂在内存中?您是否尝试在创建新的 Outlook 实例之前检查正在运行的进程列表? Outlook.exe 挂在内存中。它在任务栏中也可见。请注意,这仅适用于一台运行 office365 的全新计算机。这个进程由代码创建并被指令 Set objOL = Nothing 杀死。 【参考方案1】:

尝试使用早期绑定,首先需要设置对 Outlook 对象库的引用。使用 Visual Basic for Applications (VBA) 工具菜单上的引用命令设置对 Microsoft Outlook xx.x 对象库的引用,其中 xx.x 表示您正在使用的 Outlook 版本。然后,您可以使用以下语法启动 Outlook 会话。

Dim objOL as Outlook.Application 
Set objOL = New Outlook.Application

更多信息请参见Automating Outlook from a Visual Basic Application。

【讨论】:

以上是关于访问 Outlook VBA 对象模型时单词冻结的主要内容,如果未能解决你的问题,请参考以下文章

VBA 访问函数 - 将 Outlook 文件夹/收件箱作为对象返回

使用 VBA 禁用 Outlook 安全设置

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

在 Outlook 对象模型中哪里可以找到 mailitem 对象的属性值“电子邮件帐户”?

使用 VBA 访问 Outlook 中的文件夹

在Outlook中打开文件对话框(VBA)错误438