Объект ReportTable (Project)
Представляет фигуру в виде таблицы в отчете Project.
Замечания
Примечание.
Запись макроса для объекта ReportTable не реализована. То есть, когда вы записываете макрос в Project и вручную добавляете таблицу отчета или редактируете элементы таблицы, шаги по добавлению таблицы отчета и управлению ими не записываются.
Объект ReportTable является своего рода объектом Shape ; он не связан с объектом Table . Project имеет ограниченную поддержку VBA для таблиц отчетов; Чтобы указать поля таблицы, вручную используйте область задач Список полей (см. рис. 1). Чтобы отобразить или скрыть область задач "Список полей ", выберите команду Данные таблицы на вкладке КОНСТРУКТОР в разделе РАБОТА С ТАБЛИЦАми на ленте. Чтобы указать макет таблицы или свойства конструктора, можно использовать вкладку КОНСТРУКТОР и вкладку МАКЕТ на ленте.
Запрос данных, связанный с таблицей отчета, можно обновить с помощью метода UpdateTableData . Чтобы получить текст в ячейке таблицы, используйте метод GetCellText .
Чтобы программно создать ReportTable, используйте метод Shapes.AddTable . Чтобы вернуть объект ReportTable , используйте Shapes(Index).Table
, где Index — это имя или номер индекса фигуры.
Пример
Макрос TestReportTable создает отчет с именем Table Tests, а затем — объект ReportTable.
Sub TestReportTable()
Dim theReport As Report
Dim theShape As Shape
Dim theReportTable As ReportTable
Dim reportName As String
Dim tableName As String
Dim rows As Integer, columns As Integer, left As Integer, _
top As Integer, width As Integer, height As Integer
rows = 3
columns = 4
left = 20
top = 20
width = 200
height = 100
reportName = "Table Tests"
tableName = "Basic Project Data Table"
Set theReport = ActiveProject.Reports.Add(reportName)
' Project ignores the NumRows and NumColumns parameters when creating a ReportTable.
Set theShape = theReport.Shapes.AddTable( _
rows, columns, left, top, width, height)
theShape.Name = tableName
Set theReportTable = theShape.Table
With theReportTable
Debug.Print "Rows: " & .RowsCount
Debug.Print "Columns: " & .ColumnsCount
Debug.Print "Table contents:" & vbCrLf & .GetCellText(1, 1)
End With
End Sub
На рис. 1 основной объект ReportTable в отчете Тесты таблиц создается макросом TestReportTable . При первом создании таблицы она содержит одну строку и один столбец; Параметры NumRows и NumColumns метода AddTable не оказывают влияния. Количество строк и столбцов в таблице обновляется при добавлении полей в таблицу вручную из области задач "Список полей" или при использовании метода UpdateTableData . Вы можете отфильтровать поля, чтобы ограничить количество строк. Макрос TestReportTable записывает в окне Интерпретация VBE следующее:
Rows: 1
Columns: 1
Table contents:
Use the Table Data taskpane to build a table
Нижний объект ReportTable на рис. 1 — это таблица отчетов по умолчанию, которую проект создает при выборе таблицы на вкладке КОНСТРУКТОР в разделе ИНСТРУМЕНТЫ ОТЧЕТОВ. В нем отображаются имя проекта, дата начала, дата окончания и процент завершения сводной задачи проекта (идентификатор задачи = 0).
Рис. 1. Объект ReportTable требует ручного редактирования для добавления полей и изменения форматирования
Чтобы удалить объект ReportTable , используйте метод Shape.Delete , как в следующем макросе:
Sub DeleteTheReportTable()
Dim theReport As Report
Dim theShape As Shape
Dim reportName As String
Dim tableName As String
reportName = "Table Tests"
tableName = "Basic Project Data Table"
Set theReport = ActiveProject.Reports(reportName)
Set theShape = theReport.Shapes(tableName)
theShape.Delete
End Sub
Чтобы удалить весь отчет, перейдите в другое представление, как показано в следующем макросе:
Sub DeleteTheReport()
Dim i As Integer
Dim reportName As String
reportName = "Table Tests"
' To delete the active report, change to another view.
ViewApplyEx Name:="&Gantt Chart"
ActiveProject.Reports(reportName).Delete
End Sub
Методы
Имя |
---|
GetCellText |
UpdateTableData |
Свойства
Имя |
---|
ColumnsCount |
RowsCount |
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.