Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 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プロパティ

▼オブジェクトブラウザーの使い方と共に、VBAのオブジェクト式の文法・オブジェクト変数について解説する、マクロ経験者向けセミナー『Excel VBA講座 オブジェクト式解説編』の開催時に、案内を希望される方はメールアドレスをご登録ください。
オブジェクト式解説編

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

[スポンサード リンク]
[スポンサード リンク]

TrackBack:0

TrackBack URL

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

「Shape・図形」の記事一覧

検索

最近じっくりと読まれている記事

.