LoginSignup
3

More than 3 years have passed since last update.

PowerPointのページ番号をマクロでセットする

Last updated at Posted at 2019-08-02

PowerPointでページ番号つけてますか?

スライドにページ番号つけてますか?

私は輪講で使うために,教科書の代わりになるようなスライドを作っています.
教科書の代わりなので,「○ページにも書きましたがー」とか,「△ページの公式にしたがってー」と,何かとページ番号が重要です.

また,スライドの量が多いとき,終わりが見えないスライドって嫌ではないですか?[25/100]と右下に書いてあれば,4分の1終わったなとわかるので,少し気が楽になるというのが学生の気持ちです.

つけて損するものではないので,ページ番号は付けてもらいたいものです.できれば分母のあるタイプで.

分母なしは簡単

分母なしのページ番号は簡単です.
挿入タブに「スライド番号」 もしくは 「ヘッダーとフッター」からスライド番号を表示するかを選ぶことができるので,表示するようにすればいいだけです.
ただし,非表示スライドがあると面倒臭いです,なぜなら非表示スライドにもページ番号を振ってしまうので.

よくこれの解決方法としてあげられているのは,非表示スライドを最後のページの後ろに移動させればいい
という方法なのですが,移動していい非表示スライドって消せばよくないですか?っていうのが私の意見です.

マクロを組めばいいじゃない

マクロで非表示スライド以外にページ番号を振るようにすればいいじゃない!ってことで,組みました.
ベースになっているのは,The Power of PowerPointというサイトで公開されている
『パワーポイントの総スライド数を思い通りに表示する様々な方法』という記事のマクロです.

Const DEFAULT_DIVIDER As String = "/"
Const IS_DENOMINATOR As Boolean = False
Sub SetPageNum()
    Dim sld As Slide
    Dim shp As Shape
    Dim allPagesNum As Integer
    Dim disablePageNum As Integer

    With ActivePresentation
    For i = .Slides.Count To 1 Step -1
        With .Slides(i)
            If .SlideShowTransition.Hidden = msoFalse Then
                allPagesNum = allPagesNum + 1
            End If
        End With '.Slide(i)
    Next i
    End With 'ActivePresentation

    For Each sld In ActivePresentation.Slides
        sld.DisplayMasterShapes = True
        If sld.SlideShowTransition.Hidden = msoTrue Then
            disablePageNum = disablePageNum + 1
        Else
            For Each shp In sld.Shapes
                If Left(shp.Name, 12) = "Slide Number" Then
                    Dim str As String: str = sld.SlideNumber - disablePageNum
                    If IS_DENOMINATOR Then
                        str = str & DEFAULT_DIVIDER & allPagesNum
                    End If
                    shp.TextFrame.TextRange.Text = str
                End If
            Next
        End If
    Next
End Sub

改良点として

  • 分母をつけるか付けないかの選択フラグを実装(IS_DENOMINATOR As Boolean)
  • 非表示スライドを無視するように変更

の2点があります.最初に非表示スライド以外の総ページ数を数えているので,コードが長くなっていますがご了承ください.
分母なしのスライド番号を振る場合も,非表示スライドを無視して振るならこっちの方が楽です.多分.

ただ...マクロの搭載されたパワーポイントって,毎度注意も出ますし,嫌いな人もいるかもしれませんね.

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3