Método Shapes.AddTable (proyecto)

Agrega una tabla al informe y devuelve un objeto Shape que representa la tabla.

Sintaxis

expresión. AddTable(NumRows,NumColumns,Left,Top,Width,Height)

expresión Variable que representa un objeto Shapes.

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
NumRows Obligatorio Long Número de filas de la tabla. NumRows se omite al crear una tabla.
NumColumnas Obligatorio Long Número de columnas de la tabla. NumColumns se omite al crear una tabla.
Left Obligatorio Single El borde izquierdo (en puntos) de la tabla, con respecto al lado izquierdo del panel de informe.
Top Obligatorio Single El borde superior (en puntos) de la tabla, con respecto a la parte superior del panel de informe.
Width Obligatorio Single El ancho de la tabla, en puntos.
Height Obligatorio Single La altura de la mesa, en puntos.
NumRows Obligatorio INT
NumColumnas Obligatorio INT
Left Obligatorio FLOAT
Top Obligatorio FLOAT
Width Obligatorio FLOAT
Height Obligatorio FLOAT
Nombre Obligatorio/opcional Tipo de datos Descripción

Valor devuelto

Shape

Comentarios

Project omite NumRows y NumColumns cuando el método AddTable crea una tabla. Cuando se crea una tabla, tiene una fila y una columna, que contiene el texto Use el panel de tareas Datos de tabla para crear una tabla (consulte la Figura 1). Al seleccionar la tabla, Project muestra el panel de tareas de datos de la tabla denominado Lista de campos, con TASKS seleccionada de forma predeterminada. Con el panel de tareas Lista de campos , puede agregar manualmente campos al informe.

Figura 1. El método AddTable crea una tabla con una fila y una columna.

Uso del método AddTable

Ejemplo

La macro TestReportTable crea la tabla que se muestra en la figura 1 y, después, selecciona la tabla para mostrar el panel de tareas Datos de tabla .

Sub TestReportTable()
    Dim theReport As Report
    Dim tableShape As shape
    Dim theReportTable As ReportTable
    Dim reportName As String
    Dim tableName As String
    Dim rows As Integer
    Dim columns As Integer
    Dim left As Integer
    Dim top As Integer
    Dim width As Integer
    Dim height As Integer
    
    reportName = "Table Report"
    Set theReport = ActiveProject.Reports.Add(reportName)
    
     ' Add the table.
    tableName = "Task information"
    rows = 0
    columns = 0
    left = 0
    top = 30
    width = 110
    height = 20
       
    ' Project ignores the NumRows and NumColumns parameters when
    ' creating a ReportTable.
    Set tableShape = theReport.Shapes.AddTable(rows, columns, _
                        left, top, width, height)
    
    tableShape.Name = tableName
    tableShape.Select
    Set theReportTable = tableShape.Table
    
    With theReportTable
        Debug.Print "Rows: " & .RowsCount
        Debug.Print "Columns: " & .ColumnsCount
        Debug.Print "Cell 1,1 contents:" & vbCrLf & vbTab; .GetCellText(1, 1)
    End With
End Sub

Para especificar los campos de la tabla, utilice el método UpdateTableData . Agregue el código siguiente después de la Set theReportTable = tableShape.Table línea de la macro anterior. El parámetro OutlineLevel especifica las tareas de nivel 1 y filtra la tarea de resumen del proyecto.

    ' Set fields for the table.
    Dim fieldArray(1 To 6) As PjField
        
    fieldArray(1) = pjTaskName
    fieldArray(2) = pjTaskStart
    fieldArray(3) = pjTaskFinish
    fieldArray(4) = pjTaskPercentComplete
    fieldArray(5) = pjTaskActualCost
    fieldArray(6) = pjTaskRemainingCost
        
    theReportTable.UpdateTableData Task:=True, OutlineLevel:=1, SafeArrayOfPjField:=fieldArray

Ejecute la macro TestReportTable modificada en un proyecto que tenga cuatro tareas con varios valores para el porcentaje completado y los costos de recursos. La Figura 2 es un ejemplo de los resultados de la tabla.

Figura 2. El método UpdateTableData puede agregar campos a una tabla

Actualización de una tabla con el método UpdateTableData

Vea también

Formas ObjetoForma ObjetoMétodo Application.Table

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.