PowerPointのVBA(Visual Basic for Applications)を使ってマクロを作成していると、選択されているシェイプの情報が欲しくなるということがあります。
プレースホルダの場合にだけ処理したいとか、シェイプの名前が○○のときだけ○○したい、といった要望がでてくるためてす。
そんなシェイプの情報が欲しいというようなとき、役立ちそうなマクロをご紹介しておきます。
With ActiveWindow.Selection
If .Type = ppSelectionNone Or _
.Type = ppSelectionSlides Then Exit Sub
With .ShapeRange
MsgBox .Id & vbCrLf & _
.Name & vbCrLf & _
.Type & vbCrLf & _
.AutoShapeType
End With
End With
End Subシェイプが一つ選択されている状態で上記のマクロを実行すると、ShapeRangeのId・Name・Type・AutoShapeTypeがメッセージボックスに表示されます。(複数のシェイプが選択されているときにはエラーとなります。)
SelectionオブジェクトのShapeRangeオブジェクトにいろいろなプロパティが用意されていて、さまざまな情報を取得できます。
上記のマクロでは、その中からよく使われそうなものをメッセージボックスに表示しています。
PowerPointのVBAを触り始めたばかりの方の場合、Shapeオブジェクトのプロパティを取得しようとしてしまいがちだと思いますが、選択されているシェイプについてはShapeRangeオブジェクトのほうが扱いやすいはずです。
ShapeRangeオブジェクトにはたくさんのプロパティが用意されています。その他のプロパティはヘルプで「ShapeRangeオブジェクト」を調べてみてください。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 選択されている図形の情報を取得するPowerPointマクロ