グラフ オブジェクト (Project)

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

メソッド

名前
ApplyChartTemplate
ApplyCustomType
ApplyDataLabels
ApplyLayout
AutoFormat
Axes
ChartWizard
ClearToMatchColorStyle
ClearToMatchStyle
Copy
CopyPicture
Delete
Export
GetChartElement
Refresh
RefreshPivotTable
SaveChartTemplate
Select
SeriesCollection
SetDefaultChart
SetElement
SetSourceData
UpdateChartData

プロパティ

名前
アプリケーション
AutoScaling
BackWall
BarShape
ChartArea
ChartColor
ChartData
ChartGroups
ChartStyle
ChartTitle
ChartType
Creator
DataTable
DepthPercent
DisplayBlanksAs
Elevation
Floor
形式
GapDepth
HasAxis
HasDataTable
HasLegend
HasTitle
HeightPercent
Legend
Parent
Perspective
PivotLayout
PlotArea
PlotBy
PlotVisibleOnly
RightAngleAxes
Rotation
Shapes
ShowAllFieldButtons
ShowAxisFieldButtons
ShowDataLabelsOverMaximum
ShowLegendFieldButtons
ShowReportFilterFieldButtons
ShowValueFieldButtons
SideWall
Walls

関連項目

Shape オブジェクト

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。