Vba 如何在启动时运行代码,将所有未读日历项标记为已读?
我问如何在超级用户上手动执行 我希望在每次启动Outlook时都能实现自动化。似乎每当有与Outlook同步的新日历条目时,默认情况下该条目都会标记为未读 我将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
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概念实际上并不适用于日历项。你到底想干什么?取消提醒?我的第一个链接是指将所有日历项目标记为已读的手动步骤。问题是,当从其他地方同步新的日历项时,它在日历中显示为未读。我希望所有日历项都标记为已读,这样它们就不会显示在文件夹视图中。我受过训练,可以对带有数字的文件夹进行操作,但在日历中,这种类型的计数是没有用的,与我受过的对文件夹进行操作的训练背道而驰。