This topic has not yet been rated - Rate this topic

Chart Object (Project)

Office 2013

The Chart object represents a chart on a report in Project.

Version Added: Project 2013

The Chart object in Project 2013 includes the standard members that other Office 2013 applications implement for Office Art. For example, see the Chart object in the VBA object model for Word 2013, Excel 2013, and PowerPoint 2013.

In Project, a chart is represented by a Chart object, which is contained by a Shape object or a ShapeRange collection in a Report object. For a diagram that shows the Chart object in the Project object model hierarchy, see Application and Projects object map.

Note Note

Macro recording for the Chart object is not implemented. That is, when you record a macro in Project 2013 and manually add a chart, add chart elements, or manually format a chart in a report, the steps for adding and manipulating the chart are not recorded.

You can use the Shapes.AddChart method to add a chart to a report. To determine whether a Shape or a ShapeRange contains a chart, use the HasChart method.

The Chart object in Project does not implement events. So, a chart in Project cannot be animated to interact with mouse events or respond to events such as Select or Calculate, as it can in Excel.

The following example creates a simple scalar chart for tasks in the active project. The chart shows the Actual Work, Remaining Work, and Work default fields.

To create some sample data, add four tasks to a new project, assign local resources to those tasks, and set various values of duration and actual work. For example, try the values in Table 1.

Table 1. Sample data for a simple chart

Task name

Duration

Actual work

T1

2d

16

T2

5d

19

T3

4d

7

T4

2d

0

 

Sub AddSimpleScalarChart()
    Dim chartReport As Report
    Dim reportName As String
    
    ' Add a report.
    reportName = "Simple scalar chart"
    Set chartReport = ActiveProject.Reports.Add(reportName)

    ' Add a chart.
    Dim chartShape As Shape
    Set chartShape = ActiveProject.Reports(reportName).Shapes.AddChart()
    
    chartShape.Chart.SetElement (msoElementChartTitleCenteredOverlay)
    chartShape.Chart.ChartTitle.Text = "Sample Chart for the Test1 project"
End Sub

When you run the AddSimpleScalarChart macro, Project creates the report and adds a chart. The chart has default features, except the title is specified by the SetElement property to be overlaid on the chart, instead of the default position above the chart.

Figure 1. The chart shows the data in Table 1

Simple scalar chart in a report

To delete the chart, you can delete the shape that contains the chart. The following macro deletes the chart on the report that is created by the AddSimpleScalarChart macro, and leaves the empty report as the active view.

Sub DeleteTheShape()
    Dim i As Integer
    Dim reportName As String
    Dim theShape As MSProject.Shape
    
    reportName = "Simple scalar chart"
        
    For i = 1 To ActiveProject.Reports.Count
        If ActiveProject.Reports(i).Name = reportName Then
            Set theShape = ActiveProject.Reports(i).Shapes(1)
            theShape.Delete
        End If
    Next i
End Sub

To delete the report, go to a different view, and then open the Organizer dialog box. You cannot delete a report while the report is active. The Organizer is available on the DEVELOPER tab of the ribbon, and also on the DESIGN tab, in the Report group, on the Manage menu. On the Reports tab of the Organizer dialog box, select Simple scalar chart in the project pane, and then choose Delete. Alternately, run the following macro to delete the report.

Sub DeleteTheReport()
    Dim i As Integer
    Dim reportName As String
    
    reportName = "Simple scalar chart"

    ' To delete the active report, change to another view.
    ViewApplyEx Name:="&Gantt Chart"
    
    ActiveProject.Reports(reportName).Delete
End Sub

Other resources

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.