我有一个在启动资源管理器时运行的宏。我发现,如果将DoEvents函数/语句放在宏中,那么每当我使用另一个应用程序(例如,浏览器)然后单击主Outlook(即资源管理器)窗口标题栏时,Outlook窗口都会最大化,就像我双击它一样。
如果我将DoEvents注释掉,则窗口将正常运行。
即使DoEvents是Activate宏中的 only 语句,也会发生此行为。
当发生Activate事件时,宏将按预期运行,但是如果存在DoEvent,则窗口状态无明显变化。
这是一个已知问题吗?
谢谢!
====编辑=====
如果我在ThisOutlookSession中运行以下代码,则会发生奇怪的窗口行为:
Private WithEvents my_x As Explorer
Private Sub Application_Startup()
Set my_x = Application.ActiveExplorer
End Sub
Private Sub my_x_Activate()
DoEvents
End Sub
此外,在浏览器中的项目上单击一次 Outlook没有焦点时会导致该项目打开,就像双击一样。加上偶尔的其他奇怪行为。
我正在Win10中使用Outlook 2013。
答案 0 :(得分:0)
绝对没有理由使用DoEvents。曾经您可能会窃取Outlook本身希望处理的某些Windows消息。
答案 1 :(得分:0)
首先,建议您扫描计算机上的病毒。
然后,我建议检查Outlook中正在运行的加载项的列表。您可以尝试将其关闭,然后查看Outlook的工作原理。
不需要在DoEvents
事件处理程序中使用Activate
。