访问 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 文件夹/收件箱作为对象返回