访问表中多值属性的值
通常,如果使用其显式内置名称将多值属性添加到 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。