ReportTable-Objekt (Project)

Ein Shape in Form einer Tabelle in einem Projektbericht darstellt.

HinwBemerkungeneise

Hinweis

Die Makroaufzeichnung für das ReportTable-Objekt ist nicht implementiert. Das heißt, wenn Sie ein Makro in Project aufzeichnen und manuell eine Berichtstabelle hinzufügen oder Tabellenelemente bearbeiten, werden die Schritte zum Hinzufügen und Bearbeiten der Berichtstabelle nicht aufgezeichnet.

Das ReportTable-Objekt ist eine Art Shape-Objekt . sie steht nicht im Zusammenhang mit dem Table-Objekt . Project verfügt über eingeschränkte VBA-Unterstützung für Berichtstabellen. Um die Tabellenfelder anzugeben, verwenden Sie manuell den Aufgabenbereich Feldliste (siehe Abbildung 1). Um den Aufgabenbereich Feldliste ein- oder auszublenden, wählen Sie im Menüband auf der Registerkarte ENTWURF unter TABELLENTOOLS den Befehl Tabellendaten aus. Um das Tabellenlayout oder die Entwurfseigenschaften anzugeben, können Sie die Registerkarte ENTWURF und die Registerkarte LAYOUT im Menüband verwenden.

Sie können die Datenabfrage einer Berichtstabelle zugeordnet, mit der UpdateTableData -Methode aktualisieren. Wenn den Text in eine Tabellenzelle erhalten möchten, verwenden Sie die GetCellText -Methode.

Verwenden Sie die Shapes.AddTable -Methode, um eine ReportTableprogrammgesteuert zu erstellen. Um ein ReportTable-Objekt zurückzugeben, verwenden Sie Shapes(Index).Table, wobei Index der Name oder die Indexnummer einer Form ist.

Beispiel

Das Makro TestReportTable erstellt einen Bericht mit dem Namen Tabelle Tests und erstellt dann ein ReportTable -Objekt.

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

In Abbildung 1 wird das Makro TestReportTable des oberen ReportTable -Objekts in der Tabelle Tests Bericht erstellt. Wenn Sie zuerst die Tabelle erstellen, weist diese eine Zeile und Spalte; die Parameter NumRows und NumColumns der AddTable -Methode haben keine Auswirkung. Die Anzahl der Zeilen und Spalten in der Tabelle wird aktualisiert, wenn Sie der Tabelle manuell Felder aus dem Aufgabenbereich Feldliste hinzufügen oder die UpdateTableData-Methode verwenden. Sie können die Felder zum Beschränken der Anzahl der Zeilen filtern. Das Makro TestReportTable schreibt Folgendes im Direktfenster des VBE an:

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

Das ReportTable -Objekt unten in Abbildung 1 wird der Bericht-Tabelle, mit der Projekt erstellt, wenn Sie eine Tabelle auf der Registerkarte ENTWURF unter BERICHTSTOOLS auswählen. Es zeigt den Namen des Projekts, Anfangstermin, Endtermin und Prozent abgeschlossen der Projektsammelvorgang (Vorgangsnummer = 0).

Abbildung 1: Das ReportTable-Objekt erfordert eine manuelle Bearbeitung, um Felder hinzuzufügen und die Formatierung zu ändern.

Das ReportTable-Objekt erfordert eine manuelle Bearbeitung. Um ein ReportTable-Objekt zu löschen, verwenden Sie die Shape.Delete-Methode wie im folgenden Makro:

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

Um den gesamten Bericht zu löschen, ändern Sie zu einer anderen Ansicht, wie das folgende Makro in:

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

Methoden

Name
GetCellText
UpdateTableData

Eigenschaften

Name
ColumnsCount
RowsCount

Siehe auch

Report-Objekt

Shape-Objekt

Chart-Objekt

Chart.DataTable-Eigenschaft

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.