次の方法で共有


Chart オブジェクト (Project)

Chart オブジェクトは、Project のレポートのグラフを表します。

注釈

Project の Chart オブジェクトには、他の Office アプリケーションが Office Art 用に実装する標準メンバーが含まれています。 たとえば、Word、Excel、PowerPoint の VBA オブジェクト モデルの Chart オブジェクトを参照してください。

Project では、グラフは Chart オブジェクトによって表されます。これは、Report オブジェクトの Shape オブジェクトまたは ShapeRange コレクションに含まれます。 Project オブジェクト モデル階層の Chart オブジェクトを示す図については、「 Application and Projects オブジェクト マップ」を参照してください。

注:

Chart オブジェクトのマクロ記録は実装されていません。 つまり、Project でマクロを記録し、グラフを手動で追加したり、グラフ要素を追加したり、レポートにグラフを手動で書式設定したりすると、グラフを追加および操作する手順は記録されません。

Shapes.AddChart メソッドを使用して、グラフをレポートに追加します。 Shape または ShapeRange にグラフが含まれているかどうかを判断するには、HasChart メソッドを使用します。

Project の Chart オブジェクトはイベントを実装しません。 そのため、Project のグラフをアニメーション化してマウス イベントを操作したり、 SelectCalculate などのイベントに応答したりすることはできません。これは 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 のサポートおよびフィードバックを参照してください。