Home » パワーポイントマクロ・PowerPoint VBAの使い方 » グラフ・Chart » PowerPoint VBAでグラフオブジェクトは?

PowerPoint VBAでグラフオブジェクトは?

対象:PowerPoint2010, PowerPoint2013, Windows版PowerPoint2016

「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プロパティで取得できる、

オブジェクトブラウザー:Shape.Chartプロパティ

Chartオブジェクトを利用します。

オブジェクトブラウザー:Chartオブジェクト

このChartオブジェクトが、Excel VBAでChartObjectのChartプロパティで取得したChartオブジェクトに該当します。

Chartオブジェクトを確認するためのサンプルマクロ

PowerPoint VBAでグラフを操作するChartオブジェクトが、どのようなプロパティを持っているのかは、以下のSubプロシージャを実行して確認してみてください。

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

Chartオブジェクトからアクセスできる各種データの具体例をかなり確認できます。

最終更新日時:2021-06-08 15:08

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » グラフ・Chart » PowerPoint VBAでグラフオブジェクトは?

「グラフ・Chart」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.