【PowerPoint】総ページ数付き番号を自動で挿入する方法|VBAマクロ

【PowerPoint】総ページ数付き番号を自動で挿入する方法|VBAマクロ

PowerPoint(パワポ)で、全スライドのフッターへ総ページ数付きページ番号(例: "5/20")を自動挿入したいと考えたことはありませんか?

PowerPointスライドのフッターに総ページ数付きページ番号を自動挿入
PowerPointスライドのフッターに総ページ数付きページ番号を自動挿入

手作業での設定や更新は、時間がかかり、表記ゆれやミスの原因にもなりがちです。

この記事で紹介するVBAマクロを活用すれば、この作業を自動化できます。主なメリットは、(1)作業時間を大幅に短縮できること、(2)全スライドで表記を確実に統一できること、(3)総ページ数を正確に反映できることです。

この記事では、さらに表示形式も自由にカスタマイズ可能なVBAコードを紹介し、その使い方から注意点までを初心者の方にも分かりやすく解説します。

マクロを使って、ページ番号管理を効率化・正確化しましょう。

目次

総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順

ここからは、「総ページ数付きページ番号」をフッターに自動で挿入するためのVBAマクロについて、その具体的な使い方と実行手順を解説していきます。

このマクロを利用するためには、事前にPowerPointのリボンに「開発」タブを表示させておく必要があります。
もし「開発」タブが表示されていない場合は、まずそちらの準備をお願いします(表示方法は「【PowerPoint】開発タブの出し方|初心者でもすぐできる簡単4ステップ」)。

準備が整っていれば、手順は大きく分けて(1)スライドにフッターを配置、(2)VBAコードの設置、(3)マクロの実行、となります。

STEP
PowerPointスライドを開いて「挿入」タブをクリック

最初に、VBAマクロがページ番号を入れる場所となる、フッター(通常はページの下部にある表示エリアのことです)が、すべてのスライドで使える状態になっているか確認・設定しましょう。

PowerPoint画面上部のメニュー(リボンと呼ばれます)から「挿入」タブをクリックしてください。

総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step1 PowerPointスライドを開いて「挿入」タブをクリック
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step1 PowerPointスライドを開いて「挿入」タブをクリック
STEP
「ヘッダーとフッター」ボタンをクリック

次に、「挿入」タブの中にある「ヘッダーとフッター」ボタンをクリックし、スライド番号やフッターに関する設定を行うための画面を開いてください。

PowerPointのリボンが折りたたまれて操作しにくい場合は、「【PowerPoint】リボン(メニューバー)を常に表示する方法|デスクトップ版・Web版対応」をご覧になり、リボンを常に表示に切り替えてください。

総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step2 「ヘッダーとフッター」ボタンをクリック
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step2 「ヘッダーとフッター」ボタンをクリック
STEP
「フッター(F)」に、チェックを入れて「すべてに適用(Y)」ボタンをクリック

「ヘッダーとフッター」ボタンをクリックすると、「ヘッダーとフッター」と書かれたウィンドウが開きます。

このウィンドウの中で、まず VBAマクロが後ほどページ番号を書き込む場所となる「フッター(F)」に、チェックを入れてください。
これにより、プレゼンテーション内の各スライドでフッター領域が有効化されます。

次に、この設定をすべてのスライドに反映させるため、画面下部にある「すべてに適用(Y)」ボタンをクリックします。

総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step3 「フッター(F)」に、チェックを入れて「すべてに適用(Y)」ボタンをクリック
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step3 「フッター(F)」に、チェックを入れて「すべてに適用(Y)」ボタンをクリック
STEP
「開発」タブをクリック

「すべてに適用(Y)」ボタンをクリックすると、プレゼンテーション内のすべてのスライドでフッターが表示される状態になります。(フッター内の具体的なテキストは、後ほどVBAマクロで設定します。)

これでフッターの準備が整いましたので、次にVBAマクロを設定するために「開発」タブをクリックしてください。

「開発」タブが表示されていない場合は、まずそちらの準備をお願いします(表示方法は「【PowerPoint】開発タブの出し方|初心者でもすぐできる簡単4ステップ」)。

総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step4 「開発」タブをクリック
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step4 「開発」タブをクリック
STEP
「Visual Basic」ボタンをクリック

次に、「開発」タブの中にある「Visual Basic」ボタンをクリックし、マクロコードを編集するための専用画面であるVBAエディター(VBE)を開いてください。

総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step5 「Visual Basic」ボタンをクリック
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step5 「Visual Basic」ボタンをクリック
STEP
ファイル名を探して右クリックし、「挿入(N)」にカーソルを合わせ「標準モジュール(M)」をクリック

次に、VBAコードを入れる「標準モジュール」を追加しましょう。

VBAエディター(VBE)画面の左にある「プロジェクト」ウィンドウで、ファイル名(例: VBA Project (プレゼンテーション))を探して右クリックしてください。

次に表示されたメニューから「挿入(N)」にカーソルを合わせ、展開されたリスト内の「標準モジュール(M)」をクリックしてください。

総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step5 ファイル名を探して右クリックし、「挿入(N)」にカーソルを合わせ「標準モジュール(M)」をクリック
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step6ファイル名を探して右クリックし、「挿入(N)」にカーソルを合わせ「標準モジュール(M)」をクリック
STEP
コードウィンドウにマクロのVBAコード全文を貼り付け

「標準モジュール(M)」を選択すると、VBE(VBAエディター)の右側にコードウィンドウ(何も書かれていない、テキストを入力するための白いエリア)が表示されます。

その中に以下のマクロのVBAコード全文をコピーし、貼り付けてください。

Sub InsertSlideCount_Customizable()
    
    '=================================================================
    ' ★ フッター書式設定 ★
    ' 下の行のダブルクォーテーション(")内のテキスト形式を編集してください。
    ' [Page] が現在のスライド番号に、[Total] が総スライド数に置き換わります。
    Const FOOTER_FORMAT As String = "スライドナンバー [Page] / [Total]"
    ' 例1: "ページ [Page] / [Total]"
    ' 例2: "[Page] / [Total]"
    ' 例3: "資料 P.[Page]" (総数は不要な場合)
    '=================================================================

    Dim sld As Slide
    Dim totalSlides As Long
    Dim formattedText As String ' 各スライド用に整形されたテキストを格納
    
    ' アクティブなプレゼンテーションが存在するか確認
    If ActivePresentation Is Nothing Then
        MsgBox "処理対象のプレゼンテーションが開かれていません。", vbExclamation
        Exit Sub
    End If
    
    ' スライドが存在するか確認
    If ActivePresentation.Slides.Count = 0 Then
        MsgBox "プレゼンテーションにスライドがありません。", vbInformation
        Exit Sub
    End If

    totalSlides = ActivePresentation.Slides.Count
    
    ' 各スライドをループ処理
    For Each sld In ActivePresentation.Slides
        
        ' --- エラー処理開始 ---
        On Error Resume Next
        
        ' フッターが存在し、かつ表示されている場合のみ処理を実行
        If sld.HeadersFooters.Footer.Visible = msoTrue Then
            ' エラー状態を一旦クリア
            Err.Clear
            
            ' ★定義された書式テンプレートを元に、実際のテキストを生成★
            formattedText = FOOTER_FORMAT ' まずテンプレートを代入
            formattedText = Replace(formattedText, "[Page]", sld.SlideIndex) ' [Page]を現在の番号に置換
            formattedText = Replace(formattedText, "[Total]", totalSlides)  ' [Total]を総スライド数に置換
            
            ' フッターテキストを設定
            sld.HeadersFooters.Footer.Text = formattedText
        End If
        
        ' --- エラー処理終了 ---
        On Error GoTo 0
        
    Next sld
    
    ' 完了メッセージ (任意)
    MsgBox totalSlides & "枚のスライドについて、フッターの更新処理を試みました。", vbInformation
    
End Sub
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step7 コードウィンドウにマクロのVBAコード全文を貼り付け
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step7 コードウィンドウにマクロのVBAコード全文を貼り付け
STEP
「マクロ」ボタンをクリック

VBAコード全文の貼り付けが完了したら、VBE(VBAエディター)のウィンドウから、メインのPowerPointウィンドウ(スライドが表示されている画面)に戻ってください。

続いて、リボンにある「開発」タブをクリックし、その中に表示されている「マクロ」ボタンをクリックしてください。

総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step8 「マクロ」ボタンをクリック
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step8 「マクロ」ボタンをクリック
STEP
「InsertSlideCount_Customizable」を選択し、「実行(R)」をクリック

「マクロ」ボタンをクリックすると「マクロ」という名前のダイアログボックス(ウィンドウ)が開き、実行できるマクロの一覧が表示されます。

その中にある「InsertSlideCount_Customizable」を選択し、「実行(R)」をクリックしてください。

もしVBAコードの Sub の行でマクロ名を変更した場合は、ここで表示される名前も変わります。通常は「InsertSlideCount_Customizable」です。

総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step9 「InsertSlideCount_Customizable」を選択し、「実行(R)」をクリック
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step9 「InsertSlideCount_Customizable」を選択し、「実行(R)」をクリック
STEP
「OK」ボタンをクリック

マクロの実行が完了すると、「X枚のスライドについて、フッターの更新処理を試みました。」という完了通知のメッセージボックスが表示されます。(Xの部分には、実際の総スライド数が入ります。)

内容を確認したら、「OK」ボタンをクリックして、このメッセージボックスを閉じてください。

総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step10 「OK」ボタンをクリック
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step10 「OK」ボタンをクリック
STEP
全スライドのフッターに総ページ数付きページ番号が挿入されていることを確認

これでマクロの実行とメッセージボックスの確認は完了です。

最後に、PowerPointの各スライドを開き、フッター部分に、ご自身が意図した(またはカスタマイズした)形式で総ページ数付きページ番号が正しく表示されているか、念のためご確認ください。

総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step11 全スライドのフッターに総ページ数付きページ番号が挿入されていることを確認
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順 Step11 全スライドのフッターに総ページ数付きページ番号が挿入されていることを確認

表示形式をカスタマイズする方法

このVBAマコードの便利な点の一つは、フッターに表示されるページ番号のテキスト形式(見た目)を簡単に変更できることです。

特別なプログラミング知識がなくても、コードの特定の部分を書き換えるだけで、お好みの表示形式に調整できます。

カスタマイズを行うのは、後ほどVBE(VBAエディター)に貼り付けるコードの冒頭部分にある、以下の行です。

'=================================================================
    ' ★ フッター書式設定 ★
    ' 下の行のダブルクォーテーション(")内のテキスト形式を編集してください。
    ' [Page] が現在のスライド番号に、[Total] が総スライド数に置き換わります。
    Const FOOTER_FORMAT As String = "Slide [Page] / [Total]" 
    ' 例1: "ページ [Page] / [Total]"
    ' 例2: "[Page] / [Total]"
    ' 例3: "資料 P.[Page]" (総数は不要な場合)
'=================================================================

このConst FOOTER_FORMAT As String = "..."の行の、ダブルクォーテーション(")で囲まれた部分が、実際にフッターに表示される内容のテンプレートとなります。

  • [Page] という文字列は、マクロ実行時に現在のスライド番号に自動的に置き換えられます。
  • [Total] という文字列は、マクロ実行時にプレゼンテーション全体の総スライド数に自動的に置き換えられます。

例えば、以下のように書き換えることができます。

  • "ページ [Page] / [Total]" → 結果例: ページ 5 / 20
  • "[Page] / [Total]" → 結果例: 5 / 20
  • "P. [Page] (全[Total]ページ)" → 結果例: P. 5 (全20ページ)
  • "配布資料 [Page]" (総数が不要な場合) → 結果例: 配布資料 5

このように、[Page][Total] の記述を活かしつつ、前後の固定文字や記号(/ページ など)を自由に変更することで、目的の表示形式を実現できます。

コードをVBEに貼り付ける前に、この行を希望の形式に修正しておくと良いでしょう。

VBAマクロ実行前の注意点

この記事でご紹介したVBAマクロは、正しく理解して使えば、フッターへのページ番号挿入作業を大幅に効率化できる便利なツールです。
しかし、その動作の特性を知らずに実行すると、予期せぬデータの上書きや、意図しない結果を招いてしまう可能性も考えられます。

ここでは、マクロを実行する前にぜひご確認いただきたい、いくつかの重要な注意点について、具体的に解説していきます。

主な内容として、既存のフッターに入力された内容がどうなるのかどのスライドに対してマクロが作用するのかコードに記述されているエラー処理の意味合い、そして作業前のバックアップの推奨などが挙げられます。

既存のフッターに入力された内容がどうなるのか

このVBAマクロを実行する上での最大の注意点です。

マクロは、フッターに元々入力されていた文字を一切確認せず、自動的に新しい内容(例: "Slide 5 / 20")で上書きしてしまいます。

つまり、もしフッターに手入力したメモや日付などの重要な情報があった場合、マクロを実行するとそれらは完全に消えてしまいます

マクロを実行する前には、必ずフッターに大切な情報が含まれていないかを確認してください。
上書きされても問題ない場合にのみ、実行するようにしましょう。

どのスライドに対してマクロが作用するのか

このVBAマクロがページ番号を挿入するのは、各スライドのフッターが「表示」されるように設定されている場合のみです。

意図的にフッターを非表示に設定しているスライド(例えば、タイトルスライドなど)は、マクロを実行しても処理の対象外となり、ページ番号は挿入されません。

これは、紹介したVBAコードの中に、フッターの表示状態を確認するステップ(If sld.HeadersFooters.Footer.Visible = msoTrue Then)が含まれているためです。
このチェックにより、非表示のフッターへの意図しない書き込みを防いでいます。

もし、マクロを実行した後に、ページ番号が表示されるべきスライドに表示されていない場合は、そのスライド(またはそのスライドが使用しているスライドマスター)のフッター設定が「非表示」になっていないかを確認してみてください。

コードに記述されているエラー処理の意味

このマクロコードに含まれるOn Error Resume Nextという一行は、「もし途中でエラーが起きても、マクロを止めずに続行する」という指示です。

これにより、万が一、特定のスライドでフッターの処理中に何か問題が発生しても、マクロ全体が停止するのを防ぎます

問題が起きたスライドは自動的にスキップされ、残りのスライドへの処理は最後まで試みられます。

作業前のバックアップの推奨

VBAマクロの実行は、多くのスライドの内容を一括で変更する可能性がある便利な機能ですが、意図しない結果になるリスクもゼロではありません。

安全のため、マクロを実行する前には、必ず作業対象のPowerPointファイルのバックアップを作成することを強く推奨します。

万が一、マクロを実行した結果が期待通りでなかった場合や、何か問題が発生した場合でも、バックアップファイルがあれば、簡単に元の状態に戻すことができるため安心です。

PowerPointスライドに総ページ数付き番号を自動で挿入する方法に関するよくある質問と答え

PowerPointスライドに総ページ数付き番号を自動で挿入する方法に関するよくある質問と答えをまとめました。

マクロを実行したのに、フッターにページ番号が表示されないスライドがあります。どうしてですか?

このマクロはフッターが「表示」設定のスライドのみを対象とします。
ページ番号が表示されない場合、そのスライドではフッターが配置されていないか、非表示設定になっていると考えられます。
「挿入」タブの「ヘッダーとフッター」や「スライドマスター」でフッターの設定状況をご確認ください。

マクロを実行したら、途中からしかページ番号が入りませんでした。

ページ番号が入らなかったスライドで、フッターが正しく配置され、「表示」設定になっているかをご確認ください。
プレゼンテーション作成の途中でレイアウトやマスターを変更した場合などに、設定が不統一になっていることがあります。

表示された総ページ数が実際のスライド枚数と違う気がします。

このマクロは現在開いているプレゼンテーションの総スライド数(非表示スライドも含む)を取得します。
もし表示されているスライドのみを数えたいなど、特別な計算が必要な場合はVBAコードの修正が必要です。
まずはPowerPoint上のスライド枚数(非表示含む)と一致しているかご確認ください。

マクロ実行後、フッターの文字サイズやフォントが変わってしまいました。

このマクロはフッターのテキスト内容のみを更新し、文字サイズやフォントなどの書式は変更しません。

一度マクロを実行した後、スライドを追加したり削除したりしました。ページ番号や総ページ数は自動で更新されますか?

いいえ、自動更新はされません
マクロは実行した瞬間のスライド構成で番号を付け直します。
スライド構成を変更した場合は、再度マクロを実行して内容を更新する必要があります。

スライドを追加・削除したので、ページ番号や総ページ数を最新の状態に更新したいです。どうすればいいですか?

プレゼンテーションの内容(スライド数や順序)を変更した際は、もう一度このマクロを実行してください。
その都度、最新の状態でページ番号と総ページ数がフッターに正しく反映されます。

マクロで挿入したページ番号や総ページ数をすべて削除したい場合はどうすればいいですか?

フッターの表示自体をすべてオフにするのが簡単な方法です。
「挿入」タブの「ヘッダーとフッター」を開き、「フッター」のチェックを外して「すべてに適用」します。
ただし、ページ番号以外の情報も非表示になる点にご注意ください。ページ番号テキストのみ消すには別のマクロや手作業が必要です。

このマクロを使って、ページ番号と総数をフッターではなくヘッダーに表示させることはできますか?

はい、可能です。VBAコード内にあるFooterという単語をHeaderに書き換えることで対応できます(※テキスト設定箇所と表示状態確認箇所の両方)。
ただし、実行するには対象スライドでヘッダーが「表示」設定になっている必要があります。

特定のセクションだけでページ番号を振ったり、セクションごとの総ページ数を表示したりできますか?

ここで紹介しているマクロはプレゼン全体の通し番号を扱います。
セクションごとの番号付けには、VBAコードを大幅に修正し、セクション情報を扱うカスタマイズが必要となります。

ページ番号の開始番号を1以外(例えば0や任意の数字)にしたいのですが。

マクロは通常1から始まるスライド番号を使います。
開始番号を変えたい場合は、VBAコード内で [Page] に置き換える値を sld.SlideIndex - 1 (0開始の場合)のように計算式で調整します。

VBAマクロとは何ですか? 簡単に教えてください。

VBAとは、PowerPointなどOffice製品の操作を自動化できるプログラミング言語です。
マクロとは、そのVBAで書かれた一連の自動処理の手順のことです。
この記事ではページ番号挿入を自動化するマクロを紹介しています。

このマクロを使うと、ファイル形式(.pptx)を変更する必要がありますか?

はい、必要です。マクロは標準のPowerPoint形式(.pptx)ファイルには保存できません。
マクロを保存するには、「PowerPoint マクロ有効プレゼンテーション (*.pptm)」形式でファイルを保存してください。
「名前を付けて保存」時にファイルの種類で選択します。

Web版やスマホ版のPowerPointでこのマクロは使えますか?

いいえ、いいえ、残念ながらPowerPoint for the web(Online版PowerPoint)スマートフォン・タブレット版のアプリでは、VBAマクロ機能は対応していません
そのため、このマクロは利用できません。デスクトップ版のPowerPointが必要です。

PowerPoint標準のページ番号挿入機能と、このマクロの違いは何ですか?

PowerPoint標準機能では、「総ページ数」をページ番号と同時に簡単に入れる標準的な方法がありません。
このVBAマクロを使えば、「現在の番号 / 総ページ数」のような形式を一括で簡単に挿入・更新でき、さらに表示形式も自由にカスタマイズできる点が大きな違いであり、メリットです。

その他PowerPointに関する記事

その他PowerPointに関する記事はこちらです。ぜひご覧ください。

最後までご覧いただきありがとうございました。
このサイトは情シスマンが半径3m以内のITに関する情報を掲載してるサイトです。
Windows系を主として、ソフトや周辺機器の操作や設定について画像も用いながらわかりやすく解説しています。

解説している内容に誤りがあった場合や、補足が必要な場合、もっと知りたい場合はこちらのお問い合わせフォームからご連絡ください。
個人の方を限定にサポートさせていただきます。

実行環境
Windows11 Home 24H2
64 ビット オペレーティング システム
11th Gen Intel(R) Core(TM) i7-11375H @ 3.30GHz 3.30 GHz
16.0 GB RAM
Microsoft 365

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次