PPT VBAでスライドタイトルの左上位置を取得する
動作検証バージョン:Windows版PowerPoint(バージョン1901 ビルド11231.20174)
「パワポ スライドタイトル左上位置取得 VBA」
という検索キーワードでのアクセスに気付きました。
詳細は不明ですが、スライドタイトルの左上の位置を取得するPowerPoint VBAのコードを探していらしたのでしょう。
いつものようにシンプルなSubプロシージャをご紹介しておきます。
"PPT-2021-5-8 294-1"
スライドタイトルの左上位置を取得するサンプルマクロ
以下のSubプロシージャを実行すると、アクティブプレゼンテーション先頭スライドの、スライドタイトル左上の位置が、メッセージボックスに表示されます。
Sub スライドタイトルの左上位置を取得する()
With ActivePresentation.Slides(1).Shapes
If .HasTitle Then
MsgBox _
"左 : " & .Title.Left & vbCrLf & _
"上 : " & .Title.Top
End If
End With
End Sub
Shapes.Titleでスライドタイトルを表すShapeを取得できる
Shapesコレクションに用意されているTitleプロパティを使うと、
"PPT-2021-5-8 294-2"
スライドのタイトルプレースホルダーを表すShapeオブジェクトを取得できます。
With ActivePresentation.Slides(1).Shapes
MsgBox _
"左 : " & .Title.Left & vbCrLf & _
"上 : " & .Title.Top
スライドのタイトルプレースホルダーなので、SlideオブジェクトがTitleプロパティ持っていると誤解してしまう方がいるかもしれませんが、SlideオブジェクトではなくSlideオブジェクトの子であるShapesコレクションにTitleプロパティは用意されています。
タイトルプレースホルダーも所詮はShapeオブジェクトですから、位置を表すLeftプロパティやTopプロパティを持っています。
Shapes.HasTitleでスライドタイトルが存在するかを判定
タイトルプレースホルダーがないスライドでShapes.Titleが評価されると実行時エラーが発生してしまうので、ShapesコレクションのHasTitleプロパティで、
"PPT-2021-5-8 294-3"
スライドタイトルが存在するかを事前に判定しています。
With ActivePresentation.Slides(1).Shapes
If .HasTitle Then