VBA-停止程序退出,改为最小化

VBA-停止程序退出,改为最小化,vba,outlook,Vba,Outlook,我想为Outlook编写一个宏,在单击X时调用该宏。我想让应用程序_Quit()子例程停止程序退出,然后将其最小化。我可以找出最小化的方法,但如何防止它退出?不可能真正阻止关闭。您可以根据应用程序_Quit()事件的方法签名来判断: 可取消的事件如下所示: Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) End Sub 我四处搜索,发现了一种很酷的黑客把戏,如果你不介意Outloo

我想为Outlook编写一个宏,在单击X时调用该宏。我想让应用程序_Quit()子例程停止程序退出,然后将其最小化。我可以找出最小化的方法,但如何防止它退出?

不可能真正阻止关闭。您可以根据应用程序_Quit()事件的方法签名来判断:

可取消的事件如下所示:

   Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

   End Sub
我四处搜索,发现了一种很酷的黑客把戏,如果你不介意Outlook启动时自动最小化的副作用(在上找到,复制并重新格式化):

诀窍是添加一个在Outlook启动时自动最小化Outlook的宏:

按Alt-F11转到VBA编辑器。 将此子组件粘贴到 “ThisOutlookSession”部分:

现在,在Outlook加载之后,它将 减少我也用下一个来 当有人离开时,最小化而不是关闭 尝试关闭outlook

创建C:\Program Files\Microsoft Office\OFFICE11\relaunchOL.bat和put 其中有两行:

这将给Outlook带来一些好处 秒关闭,然后重新启动 自身,然后最小化自身,因为你 将用于最小化的宏 启动


我知道有一些程序可以做到这一点,但这始终是用户必须打开的选项。我不想让它成为Outlook中的宏。嗨,BradC。我只想确认一件事,ping命令中的1.2.3.4是什么,这是你机器的IP地址吗??请confirm@deepesh:我假设批处理文件中只有ping完成的延迟。不,它不一定是一个真实的IP地址,事实上,如果它不是一个真实的IP地址,它会更好,因为它比真实的IP地址需要更长的时间来解析它(大约20秒vs大约5秒)。嗨,BradC非常感谢你的回复&这对我帮助很大。
   Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

   End Sub
Private Sub Application_Startup()
    SendKeys ("% n") 
End Sub
Private Sub Application_Quit() 
     Call Shell("C:\Program Files\Microsoft Office\OFFICE11\relaunchOL.bat" _
       , vbHide)
End Sub
Ping 1.2.3.4 -n 1 
"C:\Program Files\Microsoft Office\OFFICE11\outlook.exe"