我在SU上问了一个关于如何手动mark all unread Calendar items in Outlook as read的问题。现在,我想在每次启动Outlook应用程序时自动执行此操作。似乎任何时候都有一个与Outlook同步的新日历条目,默认情况下该条目被标记为未读。
我使用mark all Outlook calendar items private将VBA代码修改为Outlook calendar unread property。
我不是程序员,因此我不确定如何在启动期间执行此操作,并且我的所有日历和子日历都将未读项目标记为已读。
这是我到目前为止所获得的代码:
Sub MakeAllRead()
Dim oFolder As Outlook.MAPIFolder
Dim oItems As Outlook.Items
Dim oAppt As Outlook.AppointmentItem
On Error Resume Next
Set oFolder = Application.Session.GetDefaultFolder(olFolderCalendar)
Set oItems = oFolder.Items
For Each oAppt In oItems
If Err Then
Err.Clear
Else
oAppt.UnRead = False
oAppt.Save
End If
Next
End Sub
答案 0 :(得分:1)
要在启动时运行MakeAllRead,请将其放在ThisOutlookSession中。
Private Sub Application_Startup()
MakeAllRead
End Sub
我猜在代码运行之前日历项不会出现。然后,您必须继续手动运行代码。
请参阅此类非默认日历,具体取决于文件夹结构中的位置。
Application.Session.Folders("日历名称")
Application.Session.Folders("其他邮箱名称")。文件夹("日历名称")
Application.Session.Folders("其他邮箱名称")。文件夹("收件箱")。文件夹("日历名称")
Application.Session.GetDefaultFolder(olFolderInbox).Folders("其他日历名称")