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

手作業での設定や更新は、時間がかかり、表記ゆれやミスの原因にもなりがちです。
この記事で紹介するVBAマクロを活用すれば、この作業を自動化できます。主なメリットは、(1)作業時間を大幅に短縮できること、(2)全スライドで表記を確実に統一できること、(3)総ページ数を正確に反映できることです。
この記事では、さらに表示形式も自由にカスタマイズ可能なVBAコードを紹介し、その使い方から注意点までを初心者の方にも分かりやすく解説します。
マクロを使って、ページ番号管理を効率化・正確化しましょう。
総ページ数付き番号を自動で挿入するVBAマクロの使い方・実行手順
ここからは、「総ページ数付きページ番号」をフッターに自動で挿入するためのVBAマクロについて、その具体的な使い方と実行手順を解説していきます。
このマクロを利用するためには、事前にPowerPointのリボンに「開発」タブを表示させておく必要があります。
もし「開発」タブが表示されていない場合は、まずそちらの準備をお願いします(表示方法は「【PowerPoint】開発タブの出し方|初心者でもすぐできる簡単4ステップ」)。
準備が整っていれば、手順は大きく分けて(1)スライドにフッターを配置、(2)VBAコードの設置、(3)マクロの実行、となります。
最初に、VBAマクロがページ番号を入れる場所となる、フッター(通常はページの下部にある表示エリアのことです)が、すべてのスライドで使える状態になっているか確認・設定しましょう。
PowerPoint画面上部のメニュー(リボンと呼ばれます)から「挿入」タブをクリックしてください。

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

「ヘッダーとフッター」ボタンをクリックすると、「ヘッダーとフッター」と書かれたウィンドウが開きます。
このウィンドウの中で、まず VBAマクロが後ほどページ番号を書き込む場所となる「フッター(F)」に、チェックを入れてください。
これにより、プレゼンテーション内の各スライドでフッター領域が有効化されます。
次に、この設定をすべてのスライドに反映させるため、画面下部にある「すべてに適用(Y)」ボタンをクリックします。

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

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

次に、VBAコードを入れる「標準モジュール」を追加しましょう。
VBAエディター(VBE)画面の左にある「プロジェクト」ウィンドウで、ファイル名(例: VBA Project (プレゼンテーション)
)を探して右クリックしてください。
次に表示されたメニューから「挿入(N)」にカーソルを合わせ、展開されたリスト内の「標準モジュール(M)」をクリックしてください。

「標準モジュール(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コード全文の貼り付けが完了したら、VBE(VBAエディター)のウィンドウから、メインのPowerPointウィンドウ(スライドが表示されている画面)に戻ってください。
続いて、リボンにある「開発」タブをクリックし、その中に表示されている「マクロ」ボタンをクリックしてください。

「マクロ」ボタンをクリックすると「マクロ」という名前のダイアログボックス(ウィンドウ)が開き、実行できるマクロの一覧が表示されます。
その中にある「InsertSlideCount_Customizable」を選択し、「実行(R)」をクリックしてください。

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

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

表示形式をカスタマイズする方法
この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マクロがページ番号を挿入するのは、各スライドのフッターが「表示」されるように設定されている場合のみです。
意図的にフッターを非表示に設定しているスライド(例えば、タイトルスライドなど)は、マクロを実行しても処理の対象外となり、ページ番号は挿入されません。
もし、マクロを実行した後に、ページ番号が表示されるべきスライドに表示されていない場合は、そのスライド(またはそのスライドが使用しているスライドマスター)のフッター設定が「非表示」になっていないかを確認してみてください。
コードに記述されているエラー処理の意味
このマクロコードに含まれるOn Error Resume Next
という一行は、「もし途中でエラーが起きても、マクロを止めずに続行する」という指示です。
これにより、万が一、特定のスライドでフッターの処理中に何か問題が発生しても、マクロ全体が停止するのを防ぎます。
問題が起きたスライドは自動的にスキップされ、残りのスライドへの処理は最後まで試みられます。
作業前のバックアップの推奨
VBAマクロの実行は、多くのスライドの内容を一括で変更する可能性がある便利な機能ですが、意図しない結果になるリスクもゼロではありません。
安全のため、マクロを実行する前には、必ず作業対象のPowerPointファイルのバックアップを作成することを強く推奨します。
万が一、マクロを実行した結果が期待通りでなかった場合や、何か問題が発生した場合でも、バックアップファイルがあれば、簡単に元の状態に戻すことができるため安心です。
PowerPointスライドに総ページ数付き番号を自動で挿入する方法に関するよくある質問と答え
PowerPointスライドに総ページ数付き番号を自動で挿入する方法に関するよくある質問と答えをまとめました。
その他PowerPointに関する記事
その他PowerPointに関する記事はこちらです。ぜひご覧ください。
-
パワーポイントのファイルサイズ(容量)を小さくする方法 5選
こんな人にオススメの記事です パワーポイントの容量を圧縮したい人 パワーポイントのファイルを開く時にフリーズして困っている人 パワーポイントで資料等を作成してい... -
【PowerPoint】ノートを見ながらスライドショーする方法|デスクトップ版・Web版対応
こんな人にオススメの記事です PowerPointでノートを見ながらスライドショーする方法を知りたい人 PowerPointを使ったスライドショー中にノートを表示させる方法を知り... -
【PowerPoint】画像や写真を丸く切り抜きする方法
こんな人にオススメの記事です PowerPointで画像や写真を丸く切り抜く方法を知りたい人 PowerPointの画像加工機能を深く知りたい人 PowerPointのトリミング機能を最大限... -
【PowerPoint】リボン(メニューバー)を常に表示する方法|デスクトップ版・Web版対応
こんな人にオススメの記事です PowerPointでリボン(メニューバー)が消えたとき、元に戻す方法がわからず困っている人 デスクトップ版だけでなくWeb版PowerPointでも同... -
【PowerPoint】スライドサイズをA4縦向きにする方法
こんな人にオススメの記事です パワーポイントのスライドをA4サイズで作成したい人 パワーポイントのスライドを縦向きに作成したい人 パワーポイントのスライドをA4縦向... -
簡単&高速化!Word/Excel/PowerPointのキャッシュをクリアする方法
パソコンを使っていると、WordやExcel、PowerPointの動きがだんだん遅くなることがありますよね。 それは、「キャッシュ」と呼ばれる一時ファイルが溜まっているのが原... -
【PowerPoint】行間を調整する方法|狭く・広く簡単変更
こんな人にオススメの記事です パワーポイントのテキストボックス内の文字の行間を広くしたい人 パワーポイントのテキストボックス内の文字の行間を狭くしたい人 パワー... -
【PowerPoint】ノートマスターで文字サイズ・フォントを一括変更!見やすい配布資料のノートを作る方法
会議資料のノートが小さすぎて「読めない」と言われたことはありませんか?せっかく丁寧に作り込んだ配布資料でも、ノート部分が見づらいとプレゼンテーションや会議の... -
ExcelやWordで既定のプリンターが変更できない場合の対処法
こんな人にオススメの記事です 印刷時に毎回既定のプリンター以外が選択されて困っている人 Windowsの設定で既定のプリンターを変更してもExcelやWordに反映されない人 ...
最後までご覧いただきありがとうございました。
このサイトは情シスマンが半径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
コメント