2014-10-31 48 views
0

我對SU提出了一個關於如何手動輸入mark all unread Calendar items in Outlook as read的問題。現在,我希望在每次啓動Outlook應用程序時自動執行此操作。看起來任何時候都有一個與Outlook同步的新日曆條目,默認情況下該條目被標記爲未讀。Outlook VBA:將所有未讀的日曆項目標記爲已讀

我用Outlook calendar unread property修改了VBA代碼爲mark all Outlook calendar items private

我不是程序員,所以我不知道如何在啓動期間執行此操作,並且我的所有日​​歷和子日曆中的未讀項目都被標記爲已讀。

這裏是到目前爲止,我已經得到了代碼:

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

讀/未讀的概念不真正適用於日曆項目。你究竟想要做什麼?關閉提醒? – 2014-11-01 18:31:52

+0

我的第一個鏈接是指將所有日曆項目標記爲已讀的手動步驟。問題是,當新日曆項目從別處同步時,它在日曆中顯示爲未讀。我希望所有日曆項目都被標記爲已讀,以便它們不會顯示在文件夾視圖中。我受過訓練,可以對帶有數字的文件夾進行操作,但在日曆中,這種類型的計數對於我如何接受文件夾操作的培訓並不有用。 – Sun 2014-11-02 03:53:03

回答

1

在啓動時把這個ThisOutlookSession運行MakeAllRead。

Private Sub Application_Startup() 

    MakeAllRead 

End Sub 

我猜猜日曆項目不會在代碼運行之前出現。您將不得不繼續手動運行代碼。

請參考這樣的非默認日曆,具體取決於它們在文件夾結構中的位置。

Application.Session.Folders( 「日曆名稱」)

Application.Session.Folders( 「其他郵箱名」)。文件夾( 「日曆名稱」)

Application.Session.Folders(」其他郵箱名 「)。文件夾(」 收件箱 「)。文件夾(」 日曆名稱 「)

Application.Session.GetDefaultFolder(olFolderInbox).Folders(」 其他日曆名稱「)

相關問題