gpt4 book ai didi

vba - 关闭 Outlook 提醒

转载 作者:行者123 更新时间:2023-12-01 16:10:13 25 4
gpt4 key购买 nike

我没能在 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 提醒。

我尝试将约会项的reminderSet属性设置为false,提醒属性仍然弹出。

所以我正在寻找一种方法来a)在提醒自动弹出之前将其关闭/b)。自动弹出后将其忽略......或在 Outlook 中执行计划宏的任何解决方法。(请注意,我没有在 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

最佳答案

我知道如何执行此操作的唯一方法如下。

您需要将其放在模块/类的顶部:

Private WithEvents olRemind As Outlook.Reminders

然后,当您获取 Outlook 对象时,您需要执行以下操作:

Set olRemind = olApp.Reminders

其中 olApp 是您的 Outlook 应用程序对象。

现在在您的代码中您需要有此事件:

Private Sub olRemind_BeforeReminderShow(Cancel As Boolean)

WithEvents 放在顶部后,您将能够看到可以使用的所有事件。

现在您可以取消此事件,从而看不到提醒窗口。

关于vba - 关闭 Outlook 提醒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13283989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com