Vba 如何在启动时运行代码,将所有未读日历项标记为已读?

Vba 如何在启动时运行代码,将所有未读日历项标记为已读?,vba,outlook,calendar,Vba,Outlook,Calendar,我问如何在超级用户上手动执行 我希望在每次启动Outlook时都能实现自动化。似乎每当有与Outlook同步的新日历条目时,默认情况下该条目都会标记为未读 我将VBA代码修改为与 如何在启动期间以及所有日历和子日历中执行此操作 Sub MakeAllRead() Dim oFolder As Outlook.MAPIFolder Dim oItems As Outlook.Items Dim oAppt As Outlook.AppointmentItem On Error Resume Ne

我问如何在超级用户上手动执行

我希望在每次启动Outlook时都能实现自动化。似乎每当有与Outlook同步的新日历条目时,默认情况下该条目都会标记为未读

我将VBA代码修改为与

如何在启动期间以及所有日历和子日历中执行此操作

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

要在启动时运行MakeAllRead,请将其放入ThisOutlookSession

Private Sub Application_Startup() 

    MakeAllRead

End Sub 
我猜在代码运行之前,日历项不在那里。然后您必须继续手动运行代码

根据非默认日历在文件夹结构中的位置,参考此类日历

Application.Session.Folders(“日历名称”)

Application.Session.Folders(“其他邮箱名称”)。Folders(“日历名称”)

Application.Session.Folders(“其他邮箱名称”)。Folders(“收件箱”)。Folders(“日历名称”)


Application.Session.GetDefaultFolder(olFolderInbox).Folders(“其他日历名称”)

Read/unread概念实际上并不适用于日历项。你到底想干什么?取消提醒?我的第一个链接是指将所有日历项目标记为已读的手动步骤。问题是,当从其他地方同步新的日历项时,它在日历中显示为未读。我希望所有日历项都标记为已读,这样它们就不会显示在文件夹视图中。我受过训练,可以对带有数字的文件夹进行操作,但在日历中,这种类型的计数是没有用的,与我受过的对文件夹进行操作的训练背道而驰。