Home » パワーポイントマクロ・PowerPoint VBAの使い方 » グラフ・Chart » PowerPoint VBAでグラフだけを選択する

PowerPoint VBAでグラフだけを選択する

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013, Windows版PowerPoint2016

「パワーポイントマクロ 複数のshapeからchartのみ選択」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

複数のShapeからグラフだけを選択する、PowerPointマクロを探していた方による検索キーワードです。

「chart」という単語を使ってらっしゃるということは、Excel VBA(Visual Basic for Applications)の経験がある方でしょうか。

[スポンサードリンク]

グラフだけを選択するサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなスライドで、グラフだけを選択できます。

Sub アクティブスライドでグラフだけを選択する()

 With ActiveWindow.Selection
  .Unselect

  Dim shp As Shape
  For Each shp In .SlideRange.Shapes
   If shp.HasChart Then
    shp.Select Replace:=msoFalse
   End If
  Next

 End With
End Sub

サンプルマクロの解説

PowerPoint VBAにChartObjectオブジェクトはない

PowerPointのグラフは、Excelの埋め込みグラフに近そうですから、Excel VBA経験のある方の場合、ChartObjectオブジェクトがあるだろうと考えてしまう方もいらっしゃるかもしれませんが、PowerPoint VBAにChartObjectオブジェクトはありません。

Shapeの中に、Chartオブジェクトが存在しています。

Shapeの中にグラフが存在するかどうかを、ShapeオブジェクトのHasChartプロパティで調べられます。

サンプルマクロで行っている処理

PowerPoint VBAには、Excel VBAのActiveSheetに該当する、ActiveSlide的なプロパティは存在しませんから、アクティブなスライドを取得するために、定番のActiveWindow.Selection.SlideRangeというオブジェクト式を利用しています。

アクティブなスライドを表すSlideRangeオブジェクトのShapesコレクションオブジェクトに対してFor Each~Nextループを回して、
  With ActiveWindow.Selection
   For Each shp In .SlideRange.Shapes

もしグラフの存在するShapeだったら、
   If shp.HasChart Then

そのShapeを選択しています。
    shp.Select Replace:=msoFalse

グラフの存在しないShapeが選択されている状態で、
  With ActiveWindow.Selection
   For Each shp In .SlideRange.Shapes
    If shp.HasChart Then
     shp.Select Replace:=msoFalse
というFor Each~Nextループを回すと、選択されていたグラフの存在しないShapeも含んで選択されてしまいますから、事前に、
   .Unselect
で、選択の解除を行っています。

最終更新日時:2021-06-08 14:47

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » グラフ・Chart » PowerPoint VBAでグラフだけを選択する

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

検索


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

.