Compartilhar via


Objeto ReportTable (Project)

Representa uma forma na forma de uma tabela em um relatório de projeto.

Comentários

Observação

[!OBSERVAçãO] Macro de gravação para o objeto ReportTable não está implementada. Ou seja, quando você grava uma macro no Project e adiciona manualmente uma tabela de relatório ou editar elementos de tabelas, as etapas para adicionar e manipulá-lo a tabela de relatório não são registradas.

O objeto ReportTable é um tipo de objeto Shape; ele não está relacionado ao objeto Table. Projeto tem VBA suporte limitado para tabelas de relatório; para especificar os campos de tabela, use manualmente o painel de tarefas da Lista de campos (consulte a Figura 1). Para mostrar ou ocultar o painel de tarefas da Lista de campos, escolha o comando de Dados da tabela na guia DESIGN em FERRAMENTAS de TABELA na faixa de opções. Para especificar as propriedades de layout ou design da tabela, você pode usar a guia DESIGN e na guia LAYOUT na faixa de opções.

Você pode atualizar a consulta de dados associada a uma tabela de relatório, usando o método UpdateTableData. Para obter o texto em uma célula de tabela, use o método GetCellText.

Para criar programaticamente um ReportTable, use o método Shapes.AddTable. Para retornar um objeto ReportTable , use Shapes(Index).Table, em que Index é o nome ou o número de índice de uma forma.

Exemplo

A macro TestReportTable criará um relatório denominado testes da tabela e, em seguida, cria um objeto 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

Na Figura 1, o objeto superior ReportTable no relatório de tabela de testes é criado pelo macro TestReportTable. Quando você cria a tabela primeiro, ele tem uma linha e uma coluna; os parâmetros NumRows e NumColumns do método AddTable não têm efeito. O número de linhas e colunas na tabela é atualizado quando você adiciona campos manualmente à tabela no painel de tarefas Lista de Campos ou quando você usa o método UpdateTableData . Você pode filtrar os campos para limitar o número de linhas. A macro TestReportTable grava o seguinte na janela imediata do VBE:

Rows: 1
Columns: 1
Table contents:
Use the Table Data taskpane to build a table

O objeto de ReportTable inferior na Figura 1 é a tabela de relatório padrão que o Project cria quando você escolher a tabela na guia DESIGN, em FERRAMENTAS de RELATÓRIO. Mostra o nome do projeto, data de início, data de término e porcentagem de conclusão da tarefa de resumo do projeto (ID da tarefa = 0).

Figura 1. O objeto ReportTable requer edição manual para adicionar campos e alterar a formatação

O objeto ReportTable requer edição manual Para excluir um objeto ReportTable , use o método Shape.Delete , como na macro a seguir:

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

Para excluir o relatório inteiro, mude para outro modo de exibição, como a macro a seguir:

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

Métodos

Nome
GetCellText
UpdateTableData

Propriedades

Nome
ColumnsCount
RowsCount

Confira também

Objeto Report

Objeto Shape

Objeto Chart

Propriedade Chart.DataTable

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.