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

时间:2010-05-17 21:32:29

标签: vba outlook

我想为Outlook编写一个宏,当我单击X时调用它。我希望Application_Quit()子例程停止程序退出,然后将其最小化。我可以弄清楚最小化,但如何防止它退出?

1 个答案:

答案 0 :(得分:2)

不可能阻止关闭。您可以根据Application_Quit()事件的方法签名来判断:

   Private Sub Application_Quit()

   End Sub

可取消事件如下所示:

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

   End Sub

我搜索了一下,发现了一种很酷的hacky技巧,但是,如果你不介意Outlook在启动时自动最小化的副作用(找到this forum,复制并重新格式化):< / p>

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

  

按Alt-F11转到VBA编辑器。   将此子粘贴到   “ThisOutlookSession”栏目:

Private Sub Application_Startup()
    SendKeys ("% n") 
End Sub
  

现在,在Outlook加载后,它将会   最小化。我也用下一个来   当某人最小化而不是关闭   试图结束前景。

Private Sub Application_Quit() 
     Call Shell("C:\Program Files\Microsoft Office\OFFICE11\relaunchOL.bat" _
       , vbHide)
End Sub
  

创建C:\ Program Files \ Microsoft   Office \ OFFICE11 \ relaunchOL.bat并放   这两行:

Ping 1.2.3.4 -n 1 
"C:\Program Files\Microsoft Office\OFFICE11\outlook.exe"
  

这将给Outlook带来几个   关闭秒数,然后重新启动   本身,然后最大限度地减少你自己   有最小化的宏   启动。