• ベストアンサー

目次生成ができるマクロが知りたいです

PowerPoint VBAにて下記内容の目次が生成できるマクロを探しております。 ・セクションから項目名を取得 ・ページ数自動取得 実行例  内容   セクション名:野菜 スライド数:4   セクション名:果物 スライド数:2  実行結果   目次   野菜 P.1~4   果物 P.5~6 わからないなりに1週間作成してみたのですが、ページ数の表示がどうしてもうまくいかず、途方に暮れております。 有識者の方々、どうかご教示いただけますでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

次の二点を前提とした記述です。 ・スライドの1枚目は目次用で、半角角スペース1つ入りのテキスト  ボックスを1つだけ置いてあります。 ・2枚目以降が本文で、いくつかのセクションに分かれています。 Sub CrtIdx()  Dim DT1 As String, DT2 As String, i As Long  Dim SecId As Integer, SecNm As String, DumNm As String  For i = 2 To ActivePresentation.Slides.Count   SecId = ActivePresentation.Slides(i).sectionIndex   SecNm = ActivePresentation.SectionProperties.Name(SecId)   If SecNm <> DumNm Then    If SecId <> 2 Then DT1 = DT2 & " ~ " & i - 1 & Chr(10)    DT2 = DT1 & SecNm & " P." & i    DumNm = SecNm   End If  Next  ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange _    .Text = "目次" & Chr(10) & DT2 & " ~ " & i - 1 End Sub 実行すると、1枚目のスライドのテキストボックスに下図のように書き 込まれます。

loockatme
質問者

お礼

的確なご回答ありがとうございます。 不明瞭な質問内容でしたが、自分の期待した通りの挙動でした。 困っていたので、本当に助かりました。

その他の回答 (1)

回答No.1

現状、どのように書かれているかわからないので、 とりあえずヒントになれば。 セクションの開始位置は取得できていますか? 他人さまのサイトへのリンクで恐縮ですが、 http://www.relief.jp/docs/013931.html http://www.relief.jp/docs/powerpoint-vba-get-first-and-last-slide-index-of-sectoin.html これらがヒントになるかもしれません。 お読みになってなお・・でしたら、 具体的にどこがわからないかを明示いただけるとアドバイスしやすいです。 パワーポイントのマクロについては情報が多くないので大変ですね。

loockatme
質問者

お礼

ありがとうございました。

関連するQ&A

専門家に質問してみよう