Outlook发送邮件触发VBA脚本问题:如何实现自动加载无需手动设置
解决Outlook VBA脚本自动加载的方法
1. 打开Outlook VBA编辑器
按快捷键 Alt + F11 直接调出VBA编辑器。
2. 找到并打开ThisOutlookSession模块
在左侧的「项目资源管理器」里,找到对应Outlook项目下的ThisOutlookSession(通常是Project1下面的),双击它打开代码编辑窗口。
3. 粘贴并调整你的BCC检查代码
把你的检查BCC的代码放到这个模块里,必须是绑定Application_ItemSend事件的过程,示例代码如下:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) ' 替换成你要检查的目标BCC账户 Dim targetBcc As String targetBcc = "your-target-account@example.com" Dim recip As Recipient Dim hasTargetBcc As Boolean hasTargetBcc = False ' 遍历所有收件人,检查是否包含目标BCC账户 For Each recip In Item.Recipients If recip.Type = olBCC Then ' 可以根据地址或显示名称判断,按需调整 If LCase(recip.Address) = LCase(targetBcc) Then hasTargetBcc = True Exit For End If End If Next recip ' 如果未找到目标BCC,弹出提示并取消发送 If Not hasTargetBcc Then MsgBox "请添加指定的密送账户:" & targetBcc, vbExclamation, "检查密送" Cancel = True ' 取消邮件发送操作 End If End Sub
注意:把
targetBcc的值替换成你实际需要检查的账户地址。
4. 设置宏安全性
Outlook默认会阻止未签名的宏运行,需要调整设置:
- 打开Outlook,点击「文件」→「选项」→「信任中心」→「信任中心设置」
- 选择「宏设置」,勾选「启用所有宏(不推荐;可能会运行危险代码)」或者「通知所有宏」(推荐后者,每次启动时确认允许宏运行)
- 点击「确定」保存设置
5. 保存并测试
- 在VBA编辑器里,按
Ctrl + S保存,此时会生成一个VbaProject.otm文件(默认存储在用户目录的AppData\Roaming\Microsoft\Outlook下) - 关闭并重新启动Outlook
- 新建一封邮件,点击「发送」,如果未添加指定BCC,应该会弹出提示框并阻止发送,说明脚本已自动生效
关键说明
ThisOutlookSession是Outlook启动时自动加载的特殊模块,只有放在这里的事件过程(比如Application_ItemSend)才会自动绑定并触发- 不要把代码放到普通模块里,普通模块的代码不会自动关联Outlook的应用事件
内容的提问来源于stack exchange,提问作者ArxAngel
相关产品推荐
相关产品推荐

