「PlaceholderFormat.Parent VBA」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
PowerPoint VBAで、PlaceholderFormatオブジェクトに用意されているParentプロパティの戻り値が何なのか、
調べていらしたのでしょうか。
PlaceholderFormat.Parentの戻り値はShape
結論からお伝えすると、PlaceholderFormat.Parentプロパティの戻り値はShapeオブジェクトです。
「PlaceholderFormat.Parent VBA」
と検索なさった方は、PlaceholderFormat.Parentプロパティの戻り値が、「Placeholder」といった名前のオブジェクトだろうと思い込んでいらしたような気がしますが、違います。
Placeholderオブジェクトは存在しない
拙著『いちばんやさしいPowerPoint VBAの教本』の、「Lesson 30 図形を表すオブジェクトのイメージをつかみましょう」でも解説しているとおり、PowerPoint VBAにPlaceholderオブジェクトは存在しません。Placeholdersコレクションは存在しますけれど、Placeholderオブジェクトはありません。
もしもPlaceholderオブジェクトが存在していたならば、オブジェクトブラウザーのクラスペインで、「PlaceholderFormat」の上に「Placeholder」が表示されるはずです。
PlaceholderFormat.Parentの戻り値を確認しよう
PlaceholderFormat.Parentの戻り値がShapeオブジェクトであることを、拙著でも繰り返し利用しているローカルウィンドウで確認しましょう。
Dim pfmt As PlaceholderFormat
Set pfmt = ActivePresentation.Slides(1).Shapes.Placeholders(1).PlaceholderFormat
End Sub
上記のSubプロシージャをステップ実行して、代入文の実行後にローカルウィンドウを見れば、
PlaceholderFormat.Parentの戻り値がShapeであることがわかります。「As Object」と定義されているPlaceholderFormat.Parentプロパティですが、実際に取得できたのはShapeオブジェクトですから、ローカルウィンドウの[型]欄に「Object/Shape」と表示されています。
ShapeRange経由でPlaceholderFormatを取得した場合
もっとも基本であるPlaceholdersコレクションを経由してPlaceholderFormatオブジェクトを取得したのではない場合も見ておきましょう。
PowerPoint上で、いずれかのプレースホルダーを選択した状態で以下のSubプロシージャをステップ実行してみてください。
Dim pfmt As PlaceholderFormat
Set pfmt = ActiveWindow.Selection.ShapeRange.PlaceholderFormat
End Sub
代入文の実行後にローカルウィンドウを見れば、
やはり、PlaceholderFormat.Parentの戻り値がShapeであることがわかります。
SlideMaster経由でPlaceholderFormatを取得した場合
もう一つ、SlideMaster経由の場合も見ておきましょうか。
Dim pfmt As PlaceholderFormat
Set pfmt = ActivePresentation.SlideMaster.Shapes.Placeholders(1).PlaceholderFormat
End Sub
やっぱり、PlaceholderFormat.Parentの戻り値はShapeです。
最終更新日時:2021-06-21 15:03
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » プレースホルダー » PlaceholderFormat.Parentの戻り値は?