访问表中多值属性的值

通常,如果使用其显式内置名称将多值属性添加到 Table ,则属性的值的格式是逗号分隔的字符串。 如果使用按命名空间的引用将多值属性添加到 Table,则该属性值的格式为变量数组。

下列代码示例将多值 Categories 属性添加到 Table(通过使用引用其命名空间的名称 urn:schemas-microsoft-com:office:office#Keywords)。 要获取 Table 中每一行 Categories 列的值,请将

oRow("urn:schemas-microsoft-com:office:office#Keywords")

赋予一个变量,并枚举该变量数组的元素。 请注意,对于尚未为任何类别分配的项,请向变量,并枚举变体数组的元素。 请注意,对于尚未分配任何类别的项目,

oRow("urn:schemas-microsoft-com:office:office#Keywords")

返回一个空值。

Sub TableCategories() 
    Dim oT As Outlook.Table 
    Dim oRow As Outlook.Row 
    Dim varCat 
    Dim j As Integer 
    Dim strCategories As String 
 
    Set oT = Application.ActiveExplorer.CurrentFolder.GetTable() 
    oT.Columns.Add ("urn:schemas-microsoft-com:office:office#Keywords") 
    oT.Sort "LastModificationTime", True 
    Do Until oT.EndOfTable 
        Set oRow = oT.GetNextRow 
        'Obtain any values of the Categories property 
        varCat = oRow("urn:schemas-microsoft-com:office:office#Keywords") 
        If Not (IsEmpty(varCat)) Then 
            'Form a string out of the item's categories 
            For j = 0 To UBound(varCat) 
                strCategories = strCategories & (varCat(j)) & ", " 
            Next 
            'Remove last trailing ", " 
            strCategories = Left(strCategories, Len(strCategories) - 2) 
        Else 
            'The item does not have any categories 
            strCategories = "" 
        End If 
        Debug.Print ("Subject: " _ 
           & oRow("Subject") & vbCrLf & "Categories: ") & strCategories & vbCrLf 
    Loop 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。