Метод Table.GetArray (Outlook)
Получает двумерный массив, содержащий набор значений строк и столбцов из таблицы.
Синтаксис
выражение. GetArray
( _MaxRows_
)
Выражение Переменная, представляющая объект Table .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
MaxRows | Обязательный | Long | Задает максимальное количество строк, возвращаемых из таблицы. |
Возвращаемое значение
Значение Variant , представляющее собой двумерный массив, представляющий набор значений строк и столбцов из таблицы. Массив отсчитывается от нуля; индекс массива (i, j) индексирует i-й столбец и j-й строку в массиве. Столбцы в массиве соответствуют столбцам в таблице, а строки в массиве соответствуют строкам в таблице. Число строк в возвращаемом массиве — это меньшее значение MaxRows и фактическое количество строк в таблице.
Замечания
Метод GetArray предлагает концептуально простое средство получения значений из таблицы путем копирования всех или части данных в таблице (на основе текущей строки) в массив и индексирования в массив.
GetArray всегда начинается с текущей строки таблицы. Он возвращает массив с числом строк MaxRows, если в таблице есть по крайней мере число строк MaxRows, начиная с текущей позиции. Если значение MaxRows не превышает общее число строк в таблице, а число элементов в таблице меньше MaxRows, начиная с текущей строки, он вернет массив, содержащий только оставшиеся строки в таблице. Если метод GetArray вызывается и не осталось строк, getArray возвращает пустой массив с нулевыми элементами.
После получения соответствующих строк из таблицы и перед ее возвратом GetArray всегда переместит текущую строку в следующую строку таблицы, если есть следующая строка. GetArray(n)
работает так, как будто Table.GetNextRow вызывается n раз.
Значения в столбцах сопоставляются со столбцами в таблице и поэтому определяются форматом имени свойства, используемого для столбца. Дополнительные сведения см. в разделе Факторы, влияющие на представление значения свойства в классах таблиц и представлений.
Пример
В следующем примере кода таблица получается путем фильтрации по всем элементам в папке "Входящие", содержащим "Office" в теме. Затем он использует метод Table.GetArray для копирования данных из таблицы в массив и выводит значение свойства каждого возвращенного элемента.
Дополнительные сведения об указании имен свойств в фильтре по ссылке на пространство имен см. в разделе Ссылки на свойства по пространству имен.
Sub DemoTableUsingGetArray()
'Declarations
Dim Filter As String
Dim i, ubRows As Long
Dim j, ubCols As Integer
Dim varArray
Dim oTable As Outlook.Table
Dim oFolder As Outlook.Folder
Const SchemaPropTag As String = _
"http://schemas.microsoft.com/mapi/proptag/"
On Error Resume Next
'Get a Folder object for the Inbox
Set oFolder = Application.Session.GetDefaultFolder(olFolderInbox)
'Filter on the subject containing "Office"
Filter = "@SQL=" & Chr(34) & SchemaPropTag & "0x0037001E" _
& Chr(34) & " like '%Office%'"
'Get all items in Inbox that meet the filter
Set oTable = oFolder.GetTable(Filter)
On Error GoTo Err_Trap
varArray = oTable.GetArray(oTable.GetRowCount)
'Number of rows is the second dimension of the array
ubRows = UBound(varArray, 2)
'Number of columns is the first dimension of the array
ubCols = UBound(varArray)
'Array is zero-based
'Rows corrspond to items in the table, so for each item...
For j = 0 To ubRows
'Columns correspond to properties in the table, print the value of each property
For i = 0 To ubCols
Debug.Print varArray(i, j)
Next
Next
Exit Sub
Err_Trap:
Debug.Print "Error#:" & Err.Number & " Desc: " & Err.Description
Resume Next
End Sub
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.