VBA:如何测试Outlook是否脱机工作,如果不是,则将其置于脱机模式

VBA:如何测试Outlook是否脱机工作,如果不是,则将其置于脱机模式,vba,excel,email,outlook,Vba,Excel,Email,Outlook,在Excel中使用VBA发送电子邮件之前,我将Outlook置于脱机模式,这样电子邮件就不会发送,我可以检查它们 问题是每次我都必须确保Outlook处于脱机模式 我发现以下代码可将Outlook置于脱机模式: Outlook.ActiveExplorer().CommandBars.FindControl(, 5613).Execute 但问题是,如果Outlook处于脱机模式,它将使其脱离脱机模式,因此我想测试Outlook是否处于脱机模式,如果不是,则运行代码 有没有办法做到这一点?要在

在Excel中使用VBA发送电子邮件之前,我将Outlook置于脱机模式,这样电子邮件就不会发送,我可以检查它们

问题是每次我都必须确保Outlook处于脱机模式

我发现以下代码可将Outlook置于脱机模式:

Outlook.ActiveExplorer().CommandBars.FindControl(, 5613).Execute
但问题是,如果Outlook处于脱机模式,它将使其脱离脱机模式,因此我想测试Outlook是否处于脱机模式,如果不是,则运行代码


有没有办法做到这一点?

要在Exchange连接的Outlook客户端上检查脱机模式,可以检查会话对象的ExchangeConnectionMode属性

例如,您可以执行以下操作:

Dim oNS As NameSpace
Set oNS = Application.Session

If oNS.ExchangeConnectionMode = olCachedOffline Or _
   oNS.ExchangeConnectionMode = olOffline Then
   ... Work, work! ...
End If

为什么不简单呢。将邮件另存为草稿?这不会有用,因为如果邮件进入发件箱,发送它们所需要做的就是关闭脱机工作模式,这样会更快