「スライド番号からセクション名を取得 powerpoint マクロ」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがありました。
PowerPointでセクション名の一覧を取得するマクロを既にご紹介していますが、この検索は、スライド番号からセクション名を取得するマクロ・VBAのコードを探している方によるものです(このような何を求めているのかが明確な検索はありがたいです)。
スライド番号からセクション名を取得するサンプルマクロ
以下のSubプロシージャが参考になるでしょう。
Dim sld_id As Long
sld_id = InputBox("スライド番号を入力してください。")
Dim sec_id As Long
With ActivePresentation
sec_id = .Slides(sld_id).sectionIndex
MsgBox .SectionProperties.Name(sec_id)
End With
End Sub
セクションの存在しているプレゼンテーションファイルで、上記のマクロを実行すると、「スライド番号を入力してください。」と表示されたインプットボックスが表示されます。
スライド番号を入力すると、そのスライドの含まれるセクション名がメッセージボックスに表示されます。
また、セクションが存在していないプレゼンテーションファイルで実行した場合は実行時エラーが発生します。
サンプルマクロの解説
ActivePresentation.Slides(sld_id)で、Slideオブジェクトが取得できて、SlideオブジェクトのsectionIndexプロパティで、そのスライドが所属するセクションのインデックス番号が取得できます(VBAのプロパティやメソッドは、1文字目が大文字のことが一般的ですが、このsectionIndexプロパティは、1文字目が小文字です)。
取得できたセクションのインデックス番号を、ActivePresentation.SectionProperties.Nameメソッドの引数に指定すると、セクション名が取得できます(Nameというのは一般的にプロパティとなっていることが多いはずですが、SectionPropertiesオブジェクトのNameはメソッドです)。
SlideオブジェクトがSectionName的なプロパティを持っていれば、もっと簡単にセクション名を取得できるはずですが、現状は上記のようなロジックにしないと、スライド番号からセクション名を取得することはできなさそうです。
最終更新日時:2019-03-13 08:44
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » セクション » VBAでスライド番号からセクション名を取得する