Поделиться через


Доступ к значениям свойства с несколькими значениями в таблице

Как правило, если многозначное свойство добавляется в таблицу с использованием явного встроенного имени, формат значений свойства представляет собой строку с разделителями-запятыми. Если многозначное свойство добавляется в таблицу с помощью ссылки по пространству имен, формат значений свойства представляет собой массив variant.

Следующий пример кода добавляет многозначное свойство Categories в таблицу , используя имя, которое ссылается на его пространство имен urn:schemas-microsoft-com:office:office#Keywords. Чтобы получить значения столбца Категории для каждой строки в таблице, назначьте

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

в переменную и перечислите элементы массива variant. Обратите внимание, что для элемента, которому не назначены какие-либо категории, в вариант и перечислите элементы массива variant. Обратите внимание, что для элемента, которому не назначены какие-либо категории,

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 и обратная связь.