Vba 自动更新Outlook会议';重新安排时的提醒

Vba 自动更新Outlook会议';重新安排时的提醒,vba,outlook,triggers,Vba,Outlook,Triggers,我试图找到一种方法(规则或VBA,我是不可知论者)在重新安排会议时自动更改提醒值 我四处摸索,但找不到一种方法来触发会议日期和时间的变更,这似乎是实现我想要的目标的第一步,因此关于什么是正确/最接近的触发点的指导对我来说就足够开始了(一旦我有了触发器,我应该能够通过实际检查和重置提醒来蒙混过关) 背景:最终目标是让脚本/规则确保在重新安排会议时,其提醒不是“无”(在提醒被取消后重新安排会议的情况下,这是一个主要的例子)。在最幸福的世界中,脚本不知道会议的负责人是谁(这就是为什么改变会议时间似乎是

我试图找到一种方法(规则或VBA,我是不可知论者)在重新安排会议时自动更改提醒值

我四处摸索,但找不到一种方法来触发会议日期和时间的变更,这似乎是实现我想要的目标的第一步,因此关于什么是正确/最接近的触发点的指导对我来说就足够开始了(一旦我有了触发器,我应该能够通过实际检查和重置提醒来蒙混过关)

背景:最终目标是让脚本/规则确保在重新安排会议时,其提醒不是“无”(在提醒被取消后重新安排会议的情况下,这是一个主要的例子)。在最幸福的世界中,脚本不知道会议的负责人是谁(这就是为什么改变会议时间似乎是最好的选择)

提前感谢!

查看ItemChange事件


我知道这个问题很老,但我在搜索答案时从谷歌上偶然发现了它。最后创建了一些VBA,以便在会议提醒设置为少于10分钟时通知自己(Outlook 2013):

私有子应用程序\u ItemSend(ByVal项作为对象,取消作为布尔值)
“应用程序\u ItemSend在您每次点击发送邮件、会议等时都会触发。
Dim作为变体
'检查您要发送的项目是否为会议邀请:
如果TypeName(Item)=“MeetingItem”,则
'如果提醒根本没有设置,或设置为少于10分钟,请给用户取消发送的选项
如果(不是Item.GetAssociatedAppointment(False).ReminderSet)或(Item.GetAssociatedAppointment(False).ReminderMinutesBeforeStart<10),则
m=MsgBox(“您的会议提醒设置为10分钟或更短。是否仍要发送?”,VBEQUOTION+vbYesNo+vbMsgBoxSetForeground)
如果m=vbNo,则取消=True
如果结束
如果结束
手柄错误:
如果错误号为0,则
MsgBox“Outlook错误:”&错误说明,请使用感叹号
如果结束
端接头

这是一个非常古老的已知问题。
+1
为了可见性,祝你好运!(我不认为用规则可以做到这一点,但我相信用VBA可以做到)不过,有一种方法可以做到这一点,那就是开一个新的会议,创建一个适当的提醒。谢谢!是的,我在其他地方也找到了类似的线索,但从来没有找到答案,所以我想我应该试试这里。
Public WithEvents myOlItems As Outlook.Items 

Public Sub Application_Startup() 
  Set myOlItems = _
    Application.GetNamespace("MAPI").GetDefaultFolder(olFolderCalendar).Items 
End Sub 

Private Sub myOlItems_ItemChange(ByVal Item As Object) 
    debug.print item.subject
End Sub
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Application_ItemSend fires everytime you hit send on any mail, meeting, etc.
Dim m As Variant
'check to see if the item you're about to send is a meeting invite:
If TypeName(Item) = "MeetingItem" Then
    'if the reminder is not set at all, or set to less than 10 minutes, give the user the option to cancel sending
    If (Not Item.GetAssociatedAppointment(False).ReminderSet) Or (Item.GetAssociatedAppointment(False).ReminderMinutesBeforeStart < 10) Then
        m = MsgBox("Your meeting reminder is set to 10 minutes or less. Do you still want to send?", vbExclamation + vbYesNo + vbMsgBoxSetForeground)
            If m = vbNo Then Cancel = True
            End If
    End If
handleError:
If Err.Number <> 0 Then
MsgBox "Outlook Error: " & Err.Description, vbExclamation
End If
End Sub