我没有运气在显示之前以编程方式关闭 Outlook 警报。
Private Sub Application_Reminder(ByVal Item As Object)
Dim objRem As Reminder
Dim objRems As Reminders
If Item.Subject = "TESTING" Then
'downloadAndSendSpreadReport
Set objRems = Application.Reminders
i = 0
For Each objRem In objRems
i = i + 1
If objRem.Caption = "TESTING" Then
objRems.Remove i
If objRem.IsVisible Then
objRem.Dismiss
End If
Exit For
End If
Next objRem
Item.ReminderSet = False
Item.Delete
'Item.Dismiss
End If
End Sub
我想将此约会项目用作某些宏的触发器,而无需用户手动关闭提醒。
在我看来,触发此事件时,提醒项不可见,因此无法关闭
我试图从提醒集中删除它,但这似乎从我的日历中删除了整个事件。此外,它仍会显示非 ASCII 格式的 STRANGE TITLE 提醒。
我尝试将约会项的remindSet属性设置为false,提示属性还是弹出来。
所以我正在寻找一种方法来a)在提醒自动弹出之前将其关闭/b)。在它自动弹出后关闭提醒......或在 Outlook 中执行预定的 MACRO 的任何解决方法。(请注意,我无权在 Windows 或 VBS 中使用计划作业。)
更新:
现在我有以下代码。提醒正在被删除,但它仍会弹出一个提醒窗口,其标题为“没有约会/提醒”之类的标题。
beforeReminderShow 事件在提醒对象 isVisible = true 的意义上很有用
所以我可以解雇..但即使有 0 个事件,提醒窗口也会继续弹出。
Private WithEvents olRemind As Outlook.Reminders
Private Sub olRemind_BeforeReminderShow(Cancel As Boolean)
Set objRems = Application.Reminders
For Each objRem In objRems
If objRem.Caption = "TESTING" Then
If objRem.IsVisible Then
objRem.Dismiss
End If
Exit For
End If
Next objRem
End Sub
[已解决] - 最终编辑
最终解决方案可行(我放在“ThisOutlookSession”模块中)。希望这对其他人有帮助。
' declare this object withEvents displaying all the events
Private WithEvents olRemind As Outlook.Reminders
Private Sub Application_Reminder(ByVal Item As Object)
Set olRemind = Outlook.Reminders
' RUN OTHER MACRO HERE
End Sub
Private Sub olRemind_BeforeReminderShow(Cancel As Boolean)
For Each objRem In olRemind
If objRem.Caption = "TESTING" Then
If objRem.IsVisible Then
objRem.Dismiss
Cancel = True
End If
Exit For
End If
Next objRem
End Sub