(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 方法將圖表加入至報表。 若要判斷 Shape 或 ShapeRange 是否包含圖表,請使用 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
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。