Vba 如何为邮件获取或分配颜色类别?

Vba 如何为邮件获取或分配颜色类别?,vba,colors,outlook,categories,Vba,Colors,Outlook,Categories,我在网络共享上,希望 1) 获取分配给当前选定邮件项目的颜色,即灰色(olCategoryColorGray=13)(oEmail分类为灰色),然后 2) 为其指定不同的颜色类别,例如红色(olCategoryColorRed=1) 非常感谢您的帮助。您需要使用MailItem类的属性来获取分配给项目的类别列表。类别是已分配给Outlook项目的类别名称的分隔字符串 使用Category类的属性获取一个OlCategoryColor常量,该常量指示Category对象使用的颜色。通过在这些类别对

我在网络共享上,希望

1) 获取分配给当前选定邮件项目的颜色,即灰色(olCategoryColorGray=13)(oEmail分类为灰色),然后

2) 为其指定不同的颜色类别,例如红色(olCategoryColorRed=1)

非常感谢您的帮助。

您需要使用MailItem类的属性来获取分配给项目的类别列表。类别是已分配给Outlook项目的类别名称的分隔字符串

使用Category类的属性获取一个
OlCategoryColor
常量,该常量指示Category对象使用的颜色。通过在这些类别对象的
OlCategoryColor
枚举中指定表示类别颜色的相同常量,可以为多个类别共享相同的颜色

Dim oSel As Outlook.Selection

    Set oSel = Outlook.Application.ActiveExplorer.Selection

Dim oEmail As Outlook.mailitem

    Set oEmail = oSel.Item(1)
 private void EnumerateCategories()
 {
    Outlook.Categories categories = Application.Session.Categories;
    foreach (Outlook.Category category in categories)
    {
       Debug.WriteLine(category.Name);
       Debug.WriteLine(category.CategoryID);
       Debug.WriteLine(category.Color);
    }
 }

 private void AddACategory()
 {
    Outlook.Categories categories = Application.Session.Categories;
    if (!CategoryExists("ISV"))
    {
        Outlook.Category category = categories.Add("ISV",
        Outlook.OlCategoryColor.olCategoryColorDarkBlue,
        Outlook.OlCategoryShortcutKey.olCategoryShortcutKeyCtrlF11);
    }
 }

 private bool CategoryExists(string categoryName)
 {
    try
    {
       Outlook.Category category = Application.Session.Categories[categoryName];
       if(category != null)
       {
          return true;
       }
       else
       {
          return false;
       }
    }
    catch { return false; }
 }