我没有运气以编程方式在显示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提醒。
我试图将约会项的hinterSet属性设置为false,该提示属性仍然弹出。
因此,我在寻找,以便a)在提醒自动弹出之前将其关闭/b)。自动弹出提醒后将其关闭...。或在Outlook中执行计划的MACRO的任何解决方法。
(请注意,我无权在Windows或VBS中使用计划的作业。)
更新:
现在,我有以下代码。该提醒已被删除,但仍会弹出带有诸如“没有约会/提醒”之类标题的提醒窗口。
在Reminder Object isVisible = true的意义上,beforeReminderShow事件很有用。
这样我就可以解散了..但是,即使有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
最佳答案
我知道如何执行此操作的唯一方法如下。
您需要在模块/类的顶部:
Private WithEvents olRemind As Outlook.Reminders
然后,当您获取Outlook对象时,您需要执行以下操作:
Set olRemind = olApp.Reminders
其中
olApp
是您的Outlook Application对象。现在,在您的代码中,您需要发生以下事件:
Private Sub olRemind_BeforeReminderShow(Cancel As Boolean)
将
WithEvents
放在顶部之后,您将能够看到所有可以使用的事件。现在您可以取消此事件,因此看不到提醒窗口。
关于vba - 取消Outlook提醒,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13283989/