重启后Outlook的Application_Reminder事件为何停止工作?
Outlook VBA 提醒代码突然停止运行的排查与修复
问题背景
在Outlook 365的ThisOutlookSession模块中添加了以下用于将提醒前置的代码:
Private Sub Application_Reminder(ByVal Item As Object) 'Updated by ExtendOffice 20180814 Dim xAppointment As AppointmentItem If Item.Class = olAppointment Then Set xAppointment = Item MsgBox xAppointment.Subject, 4096 + vbInformation + vbOKOnly, "Outlook reminders" End If End Sub
上周代码正常运行,触发提醒时会弹出显示主题的Msgbox;但周末电脑重启后,Msgbox不再弹出,断点调试发现代码未执行,重启Outlook、切换Windows桌面均无效。
排查与解决步骤
1. 检查宏安全设置
Outlook的宏安全等级过高会直接阻止代码运行:
- 打开Outlook,依次点击「文件」>「选项」>「信任中心」>「信任中心设置」>「宏设置」
- 选择**"启用所有宏"**(临时测试用,后续可根据需求调整为签署宏模式),点击确定后重启Outlook
2. 确认代码加载与手动触发测试
- 按
Alt+F11打开VBA编辑器,双击左侧导航栏的ThisOutlookSession,确认代码完整存在 - 选中
Application_Reminder过程,按F5手动运行,若弹出Msgbox说明代码本身无问题;若没反应,检查是否有语法错误(比如变量未定义等)
3. 验证Application事件是否启用
- 在
ThisOutlookSession顶部添加启动事件代码:Private Sub Application_Startup() MsgBox "宏已加载", vbInformation End Sub - 重启Outlook,若弹出提示框,说明Application事件正常启用;若没弹出,说明宏未被加载,需重新检查安全设置
4. 排查加载项冲突
- 按住
Ctrl键启动Outlook,进入安全模式(禁用所有第三方加载项) - 设置一个测试提醒,触发后看代码是否运行
- 若安全模式下正常,逐一启用加载项并测试,找出冲突的加载项
5. 修复Outlook程序
- 打开「控制面板」>「程序和功能」,找到Microsoft 365,右键选择「更改」
- 先尝试「快速修复」,完成后重启Outlook测试;若无效,再尝试「联机修复」
内容的提问来源于stack exchange,提问作者Shawn V. Wilson
相关产品推荐
相关产品推荐

