Home » パワーポイントマクロ・PowerPoint VBAの使い方 » セクション » VBAでスライド番号からセクション名を取得する

VBAでスライド番号からセクション名を取得する

対象:PowerPoint2010, PowerPoint2013

「スライド番号からセクション名を取得 powerpoint マクロ」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがありました。

PowerPointでセクション名の一覧を取得するマクロを既にご紹介していますが、この検索は、スライド番号からセクション名を取得するマクロ・VBAのコードを探している方によるものです(このような何を求めているのかが明確な検索はありがたいです)。

[スポンサードリンク]

スライド番号からセクション名を取得するサンプルマクロ

以下のSubプロシージャが参考になるでしょう。

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

セクションの存在しているプレゼンテーションファイルで、上記のマクロを実行すると、「スライド番号を入力してください。」と表示されたインプットボックスが表示されます。

スライド番号を入力すると、そのスライドの含まれるセクション名がメッセージボックスに表示されます。

セクションという概念自体が、PowerPoint 2010から登場したものですから、2007以前のPowerPointでこのマクロを実行しようとしても、コンパイルエラーとなります。

また、セクションが存在していないプレゼンテーションファイルで実行した場合は実行時エラーが発生します。

サンプルマクロの解説

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でスライド番号からセクション名を取得する

「セクション」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.