vba - 检测何时按下 SEND 按钮
问题描述
据我所知,在 Outlook 中发送邮件有两种方法:
通过物理按下 Inspector 窗口中的 SEND 按钮,或
MailItem.Send
通过宏命令执行
如何使用 Outlook VBA 区分这些?
具体来说,如何检测何时按下 SEND 按钮?
可以ItemSend()
修改为仅捕获此事件,而不捕获其他事件吗?
解决方案
我不完全确定是否有一种方法可以检测到该项目的发送方法 - 但是,至少仍然有一种解决方法可以为您带来相同的效果。这将要求您在模块顶部创建一个布尔变量,在本例中我们使用isVBA
.
在事件处理程序中,您将添加一个If Not isVBA
语句 - 这将是您通过物理按下按钮手动发送项目的True
任何时候。
但是,在使用该MailItem.Send
方法的例程中,您将isVBA = True
在发送发生之前的任何时间添加 - 这将告诉您的事件处理程序这不是“手动”发送。
这是一个视觉表示:
Private isVBA As Boolean
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
If Not isVBA Then
Rem: Do what you need to do with a MANUAL send
End If
End Sub
Sub myVBASendMethod()
' Setting this to true will tell the event that you're using MailItem.Send
isVBA = True
' Event Triggered using MailItem.Send
' Reset this back to false
isVBA = False
End Sub
推荐阅读
- sql - 如何按另一个表中的外键值的数量对一个表进行排序?
- excel - 如何对范围内同一行的单元格应用 COUNTIFS 公式
- javascript - 仅在播放器暂停时显示元素
- c++ - 如何将我的 UWP 页面设置为在启动时具有恒定的宽度和高度?
- tor - 是否可以将 Mattermost 实例作为洋葱服务运行?
- c - 递归:如何保持 for 循环中不断变化的变量在递归期间不发生变化?
- vue.js - 尝试从 vuejs 组件调度动作时,vuex 未知动作类型
- html - 如何使用 css 为 html 字符添加边框颜色?
- sql-server - 用户会话卡在killed\rollback 状态
- unity3d - Unity:索引问题超出了数组的范围