Chart オブジェクトは、Project のレポートのグラフを表します。
注釈
Project の グラフ オブジェクトには、他の Office アプリケーションが Office Art 用に実装する標準メンバーが含まれています。 たとえば、Word、Excel、PowerPoint の VBA オブジェクト モデルのグラフ オブジェクトを参照してください。
Project では、グラフはグラフ オブジェクトで表されます。グラフ オブジェクトは、レポート オブジェクトの Shape オブジェクトまたは ShapeRange コレクションによって含まれます。 プロジェクト オブジェクト モデル階層内の グラフ オブジェクトを示す図については、「 アプリケーションとプロジェクト オブジェクト マップ」を参照してください。
注:
グラフ オブジェクトのマクロ記録が実装されていません。 つまり、Project でマクロを記録してから手動でグラフを追加したり、グラフ要素を追加したり、レポートでグラフを手動で書式設定したりしても、グラフを追加および操作する手順は記録されません。
レポートにグラフを追加するには 、Shapes.AddChart メソッドを使用します。 図形または ShapeRange にグラフが含まれているかどうかを確認するには、HasChart メソッドを使用します。
Project の グラフ オブジェクトにはイベントは実装されていません。 そのため、Project のグラフを、Excel のように、マウス イベントと対話したり、 選択 や 計算などのイベントに応答したりするためのアニメーションを設定することはできません。
例
次の例では、アクティブなプロジェクト内のタスクの単純なスカラー チャートを作成します。 グラフには、[ 実績作業時間]、[ 残存作業時間]、[ 作業時間 ] の既定のフィールドが表示されます。
サンプル データを作成するには、新しいプロジェクトに 4 つのタスクを追加し、ローカル リソースをそれらのタスクに割り当てて、期間と実績作業時間の様々な値を設定します。 たとえば、表 1 の値を試します。
表 1. シンプルなグラフのサンプル データ
| タスク名 | Duration | 実績作業時間 |
|---|---|---|
| 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
AddSimpleScalarChart マクロを実行すると、レポートが作成され、グラフが追加されます。 グラフには既定の機能がありますが、タイトルがグラフの上に既定の位置ではなく、グラフに重ねられる 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 のサポートおよびフィードバックを参照してください。