こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

PowerPoint VBAにて下記内容の目次が生成できるマクロを探しております。
・セクションから項目名を取得
・ページ数自動取得

実行例
 内容
  セクション名:野菜 スライド数:4
  セクション名:果物 スライド数:2

 実行結果
  目次
  野菜 P.1~4
  果物 P.5~6

わからないなりに1週間作成してみたのですが、ページ数の表示がどうしてもうまくいかず、途方に暮れております。
有識者の方々、どうかご教示いただけますでしょうか。

投稿日時 - 2017-07-20 12:40:15

QNo.9353887

すぐに回答ほしいです

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

次の二点を前提とした記述です。
・スライドの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枚目のスライドのテキストボックスに下図のように書き
込まれます。

投稿日時 - 2017-07-21 12:19:16

お礼

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

投稿日時 - 2017-07-24 16:49:43

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

現状、どのように書かれているかわからないので、
とりあえずヒントになれば。

セクションの開始位置は取得できていますか?
他人さまのサイトへのリンクで恐縮ですが、
http://www.relief.jp/docs/013931.html
http://www.relief.jp/docs/powerpoint-vba-get-first-and-last-slide-index-of-sectoin.html
これらがヒントになるかもしれません。
お読みになってなお・・でしたら、
具体的にどこがわからないかを明示いただけるとアドバイスしやすいです。

パワーポイントのマクロについては情報が多くないので大変ですね。

投稿日時 - 2017-07-20 17:23:21

お礼

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

投稿日時 - 2017-07-24 16:48:52

あなたにオススメの質問