我正在将待办事项清单中的一些项目赋予自定义属性,并希望在该属性更改时执行特定事件。是否有一种方式可以编写事件处理程序来处理olFolderToDo文件夹中所有项目的CustomPropertyChange事件,或以编程方式向项目添加事件处理程序,以便在添加新项目时添加事件处理程序?
我曾笨拙地处理过这个问题,将我的代码放在文件夹的ItemsChange事件处理程序中,然后检查属性的值(例如,当我想要在任务完成后触发操作时,我会监视项目的更改,然后检查项目是否已完成),但这不处理任意属性更改,并需要谨慎处理以避免连续多次触发。
以下是我目前所做的示例:
我曾笨拙地处理过这个问题,将我的代码放在文件夹的ItemsChange事件处理程序中,然后检查属性的值(例如,当我想要在任务完成后触发操作时,我会监视项目的更改,然后检查项目是否已完成),但这不处理任意属性更改,并需要谨慎处理以避免连续多次触发。
以下是我目前所做的示例:
Public WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Set Items = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderToDo).Items
End Sub
Private Sub Items_ItemChange(ByVal Item As Object)
If TypeOf Item Is Outlook.TaskItem Then
If Item.Status = olTaskComplete Then
DoTheThing
End If
ElseIf TypeOf Item Is Outlook.MailItem Then
If Item.FlagStatus = olFlagComplete Then
DoTheThing
End If
End If
End Sub