Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » PowerPoint VBAで図形の塗りつぶしが行われているかを調べる

PowerPoint VBAで図形の塗りつぶしが行われているかを調べる

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

このサイト・インストラクターのネタ帳のアクセスログを眺めていて、
「powerpoint vba 図形が塗りつぶされているかどうか」
という検索キーワードに気づきました。

図形が塗りつぶされているかどうかを調べるには、PowerPoint VBA(Visual Basic for Applications)でどのようなコードを書けばいいのかを探していた方による検索です。

[スポンサードリンク]

図形の塗りつぶしが行われているかを調べるサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなプレゼンテーションの、1枚目のスライドの1個目のShapeの塗りつぶし状態が、メッセージボックスに表示されます。
Sub 図形の塗りつぶしが行われているかを確認する()
 With ActivePresentation.Slides(1).Shapes(1)
  MsgBox .Fill.Visible
 End With
End Sub

塗りつぶしが行われていればTrueの「-1」、塗りつぶされていなければFalseの「0」がメッセージボックスに表示されます。

ShapeオブジェクトのFillプロパティで取得した、FillFormatオブジェクトのVisibleプロパティを調べれば、塗りつぶされているかどうかがわかります。

アクティブなプレゼンテーションの、1枚目のスライドの1個目のShapeの塗りつぶし状態を調べるために、以下のような階層を辿っています。
 Presentationオブジェクト
  └Slidesコレクションオブジェクト
    └Slideオブジェクト
      └Shapesコレクションオブジェクト
        └Shapeオブジェクト
          └FillFormatオブジェクト
            └Visibleプロパティ

アクティブスライドの全図形の塗りつぶしが行われているかを調べるサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなスライドの全Shapeの名前と塗りつぶし状態が、メッセージボックスに順番に表示されます。

Sub 図形の塗りつぶしが行われているかを確認する_アクティブスライド()
 Dim shp As Shape

 With ActiveWindow.Selection
  If .Type = ppSelectionNone Then Exit Sub
  For Each shp In .SlideRange.Shapes
   MsgBox _
     shp.Name & vbCrLf & _
     shp.Fill.Visible
  Next shp
 End With
End Sub

アクティブスライドの全図形を調べるために、先のマクロとは辿っているオブジェクトの階層が異なりますけれど、ShapeオブジェクトのFillFormatオブジェクトのVisibleプロパティを調べる部分は同じです。
 DodumentWindowオブジェクト
  └Selectionオブジェクト
    └SlideRangeオブジェクト
      └Shapesコレクションオブジェクト
        └Shapeオブジェクト
          └FillFormatオブジェクト
            └Visibleプロパティ

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » PowerPoint VBAで図形の塗りつぶしが行われているかを調べる

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


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

.