跳至主要内容

如何清除Outlook中的所有类别?

Author: Xiaoyang Last Modified: 2025-05-07

假设您的Outlook中有很多项目应用了颜色类别。如果您需要从这些项目中清除所有这些类别,您该如何快速轻松地在Outlook中完成此操作呢?

使用“清空所有类别”功能清除特定文件夹中的所有类别

使用VBA代码清除特定账户中的所有类别


使用“清空所有类别”功能清除特定文件夹中的所有类别

如果只需要清除特定文件夹中的类别,请按照以下步骤操作:

1. 单击要移除颜色类别的文件夹,然后按 Ctrl + A 选择所有项目。

2. 然后右键单击,并从上下文菜单中选择 添加类别 > 清空所有类别,见截图:

doc clear category 1

3. 接着,该特定文件夹中的所有颜色类别将立即被清除。


使用VBA代码清除特定账户中的所有类别

要从某个账户的所有项目(如邮件、任务、联系人、便笺等)中清除所有类别,下面的VBA代码可以帮助您:

1. 单击要清除所有类别的账户邮件,然后按住 ALT + F11 键打开 Microsoft Visual Basic for Applications 窗口。

2. 单击 插入 > 模块,并将以下宏粘贴到模块窗口中。

VBA代码:清除特定账户中的所有类别:

Sub BatchClearAllCategories_AllOutlookItems()
    Dim xCurrentFolder As Outlook.Folder
    Dim xFolder As Folder, xCurFolder As Folder
    Dim xPos As Integer
    Dim xRootFldName As String
    Set xCurFolder = Outlook.ActiveExplorer.CurrentFolder
    xPos = InStr(3, xCurFolder.FolderPath, "\")
    If xPos > 0 Then
        xRootFldName = Mid(xCurFolder.FolderPath, 3, xPos - 3)
    Else
        xRootFldName = Mid(xCurFolder.FolderPath, 3, Len(xCurFolder.FolderPath) - 2)
    End If
    Set xCurrentFolder = Outlook.Application.Session.Folders(xRootFldName)
    For Each xFolder In xCurrentFolder.Folders
        Call ProcessFolders(xFolder)
    Next
    MsgBox "Clear completed!", vbInformation + vbOKOnly, "Kutools for Outlook"
End Sub
Sub ProcessFolders(ByVal CurFld As Outlook.Folder)
    Dim xItem As Object
    Dim i As Integer
    Dim xSubfolder As Outlook.Folder
    If CurFld.Items.Count > 0 Then
        For i = CurFld.Items.Count To 1 Step -1
            Set xItem = CurFld.Items.Item(i)
            xItem.Categories = ""
            xItem.Save
        Next
    End If
    If CurFld.Folders.Count = 0 Then Exit Sub
    For Each xSubfolder In CurFld.Folders
        Call ProcessFolders(xSubfolder)
    Next
End Sub

3. 然后,按 F5 键运行它,接着会弹出一个提示框,提醒您所选账户中的所有类别已被清除,见截图:

doc clear category 2