【问题标题】:Auto Delete All Outlook Calendar Items in Deleted Folder自动删除已删除文件夹中的所有 Outlook 日历项目
【发布时间】:2020-06-25 07:45:52
【问题描述】:

我正在编写一个简单的脚本来删除已删除项目文件夹中的所有日历对象。此类日历对象包括会议确认、拒绝...等。

目前我有以下,没有删除任何东西,即使检查已删除的项目文件夹有很多日历确认,拒绝..等:

    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

【问题讨论】:

    标签: vba outlook calendar


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 2016-10-15
      • 1970-01-01
      • 2023-03-21
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多