閱讀英文

共用方式為


(Project) 的 Chart 物件

Chart 物件代表 Project 中報表上的圖表。

註解

Project 中的 Chart 物件包含其他 Office 應用程式為 Office Art 實作的標準成員。 例如,請參閱 Word、Excel 和 PowerPoint 之 VBA 物件模型中的 Chart 物件。

在 Project 中,圖表是由Chart物件代表,此物件是由Shape物件或 Report物件中的ShapeRange集合所包含。 如需在 Project 物件模型階層中顯示 Chart 物件的圖表,請參閱 Application 和 Projects 物件對應

注意

未實作 Chart 物件的宏錄製。 也就是說,當您在 Project 中錄製巨集並手動加入圖表、加入圖表元素,或手動格式化報表中的圖表時,不會記錄新增和操作圖表的步驟。

使用 Shapes.AddChart 方法將圖表加入至報表。 若要判斷 ShapeShapeRange 是否包含圖表,請使用 HasChart 方法。

Project 中的 Chart 物件不會實作事件。 因此,Project 中的圖表無法以動畫方式與滑鼠事件互動,或回應 Select 或Calculate等事件,就像在 Excel 中一樣。

範例

下列範例會為使用中專案中的工作建立簡單的純量圖表。 圖表會顯示 [實際工時]、[ 剩餘工時] 和 [ 工時 ] 預設欄位。

若要建立一些範例資料,請將四個工作新增至新專案、將本機資源指派給這些工作,以及設定工期和實際工時的各種值。 例如,請嘗試表 1 中的值。

表 1. 簡單圖表的範例資料

工作名稱 Duration 實際工時
T1 二 維和 16
T2 5d 19
T3 4d 7
T4 二 維和 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

當您執行 AddSimpleScalarChart 宏時,Project 會建立報表並新增圖表。 圖表具有預設功能,但標題是由要在圖表上重迭的 SetElement 屬性所指定,而不是圖表上方的預設位置。

圖 1: 圖表會顯示表格 1 中的資料

報表中的簡單純量圖表若要刪除圖表,您可以刪除包含圖表的圖形。 下列宏會刪除 AddSimpleScalarChart 宏所建立報表上的圖表,並將空白報表保留為使用中檢視。

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

若要刪除報表,請移至不同的檢視,然後開啟 [ 召集人 ] 對話方塊。 當報表處於作用中狀態時,您無法刪除報表。 [召集人] 位於功能區的 [開發人員] 索引標籤上,以及 [管理] 功能表上[表] 群組的 [設計] 索引標籤上。 在 [召集人] 對話方塊的 [表] 索引標籤上,選取專案窗格中的[簡單純量圖表],然後選擇 [刪除]。 或者,執行下列宏以刪除報表。

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

方法

屬性

另請參閱

Shape 物件

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應