このサイト・インストラクターのネタ帳のアクセスログを眺めていて、
「powerpoint vba 図形が塗りつぶされているかどうか」
という検索キーワードに気づきました。
図形が塗りつぶされているかどうかを調べるには、PowerPoint VBA(Visual Basic for Applications)でどのようなコードを書けばいいのかを探していた方による検索です。
図形の塗りつぶしが行われているかを調べるサンプルマクロ
以下のSubプロシージャを実行すると、アクティブなプレゼンテーションの、1枚目のスライドの1個目のShapeの塗りつぶし状態が、メッセージボックスに表示されます。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の名前と塗りつぶし状態が、メッセージボックスに順番に表示されます。
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プロパティ
- Newer:VBAで選択図形の塗りつぶし色を変更する
- Older:データの入力規則をコピー&ペーストするExcelマクロ
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » PowerPoint VBAで図形の塗りつぶしが行われているかを調べる