首页 > 解决方案 > 使用 Outlook VBA 为所有选定的电子邮件添加一个类别

问题描述

我正在尝试使用 VBA 为 Outlook 中选择的每封电子邮件添加一个类别。

问题是下面的代码仅将类别添加到第一封电子邮件。

我正在使用 Outlook 2016。

Public Sub MarkSelectedAsGreenCategory()
    Dim olItem As MailItem
    
    Dim newCategory As String
    newCategory = "Green category"
    
    Dim i As Integer
    
    For i = 1 To Application.ActiveExplorer.Selection.Count
        Set olItem = Application.ActiveExplorer.Selection(i)
        AddCategory olItem, newCategory
        Set olItem = Nothing
    Next
      
End Sub

Private Sub AddCategory(mailItem As mailItem, newCategory As String)
    Dim categories() As String
    Dim listSep As String

    ' Get the current list separator from Windows regional settings
    listSep = CreateObject("WScript.Shell").RegRead("HKEY_CURRENT_USER\Control Panel\International\sList")

    ' Break the list up into an array
    categories = Split(mailItem.categories, listSep)

    ' Search the array for the new category, and if it is missing, then add it
    If UBound(Filter(categories, newCategory)) = -1 Then
        ReDim Preserve categories(UBound(categories) + 1)
        categories(UBound(categories)) = newCategory
        mailItem.categories = Join(categories, listSep)
    End If
End Sub

标签: vbaoutlookoutlook-2016office-2016

解决方案


对类别的更新ActiveInspector.CurrentItem将生成保存提示。

对于选择:

olItem.SavemailItem.Save在您方便的时候。


推荐阅读