2016-01-20 151 views
0

我正在編寫一個簡單腳本來刪除已刪除郵件文件夾中的所有日曆對象。這樣的日曆對象包括會議確認,拒絕等等。自動刪除已刪除文件夾中的所有Outlook日曆項目

目前我有以下時,不刪除任何東西,即使檢查已刪除的郵件文件夾中有很多日程確認,declines..etc:

Dim oDeletedItems As Outlook.Folder 
    Dim obj As Outlook.MailItem 

    Dim i As Integer 

    'Obtain a reference to deleted items folder 
    Set oDeletedItems = Application.Session.GetDefaultFolder(olFolderDeletedItems) 
    For i = oDeletedItems.Items.Count - 1 To 1 Step -1 
    ' Delete all appointment items 
    If oDeletedItems.Items(i).Class = AppointmentItem Then 

     'Debug.Print obj.Subject 
      oDeletedItems.Items.Item(i).Delete 

    End If 
    Next 

回答

1

首先,不使用多點號(oDeletedItems.Items(i).Class) - 緩存進入循環之前的Items集合。

其次,確認,拒絕等是會議項目,而不是約會。

第三,Class屬性返回OlObjectClass枚舉值之一。 AppointmentItem是一個項目類型(接口)。

您需要使用53 (olMeetingRequest)或26 (olAppointment)

第四,從Items.Count開始循環,而不是Items.Count-1

set items = oDeletedItems.Items 
For i = items.Count To 1 Step -1 
    ' Delete all appointment items 
    set item = items.Item(I) 
    itemClass = item.Class 
    If (itemClass= olAppointment) or (itemClass= olMeetingRequest) Then 
      'Debug.Print obj.Subject 
      item.Delete 
    End If 
    Next 
相關問題