「powerpointvba グラフオブジェクト」
という検索キーワードに気付きました。
Excel VBAで、埋め込みグラフ表すChartObjectオブジェクトを操作したことがある方による検索でしょうか。
PowerPoint VBAにChartObjects・ChartObjectオブジェクトはない
Excel VBAの場合、WorksheetオブジェクトのChartObjectsプロパティで、ワークシート上の全グラフオブジェクトを表すChartObjectsコレクションオブジェクトを取得できます。更にChartObjectsコレクションオブジェクトからChartObjectオブジェクトも取得できます。
これに対しPowerPoint VBAにはChartObjectsコレクションオブジェクトも、ChartObjectオブジェクトも存在しません。PowerPoint VBAからスライド上に存在する対象を操作するには、すべてShapeオブジェクトを利用します。
PowerPoint VBAでグラフを操作する場合、Shapeオブジェクト等のChartプロパティで取得できる、
Chartオブジェクトを利用します。
このChartオブジェクトが、Excel VBAでChartObjectのChartプロパティで取得したChartオブジェクトに該当します。
Chartオブジェクトを確認するためのサンプルマクロ
PowerPoint VBAでグラフを操作するChartオブジェクトが、どのようなプロパティを持っているのかは、以下のSubプロシージャを実行して確認してみてください。
Dim sld As Slide
Dim shp As Shape
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.HasChart Then
sld.Select
Stop
End If
Next shp
Next sld
End Sub
グラフの存在するプレゼンテーションがアクティブな状態で上記のSubプロシージャを実行すると、グラフが存在する先頭のスライドが選択され、Stopステートメントで一時停止状態になります。
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.HasChart Then
sld.Select
Stop
ShapeオブジェクトにはHas〇〇といった名前のプロパティが複数用意されてします。
If shp.HasChart Then
の行で使っているHasChartプロパティもそのひとつで、図形にグラフが含まれている場合にTrueを返します。
Stopステートメントで一時停止になった状態で、メニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示して、オブジェクト変数shpのChartを展開すると、
Chartオブジェクトからアクセスできる各種データの具体例をかなり確認できます。
最終更新日時:2021-06-08 15:08
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » グラフ・Chart » PowerPoint VBAでグラフオブジェクトは?