Excel VBAでPowerPointにスライド番号を挿入する事例です。このサンプルでは、特定のスライドのページ番号をスキップする方法も含まれています。
内容:
なお、確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2504)です。
必要な背景
この事例が必要な背景は、PowerPointの標準機能には特定のページをスキップした自動連番を付与する機能がないためです。
その解決方法として、PowerPointのVBAを使用した解決方法は次のとおりです。
しかし、VBAを使用してページ番号を付与したPowerPointを保存する際には、「PowerPoint マクロ有効プレゼンテーション (*.pptm)」形式で保存する必要があり、汎用的な活用に課題が生じます。
そこで、ExcelのVBAで対象のPowerPointファイルを指定し、操作する事例です。
アウトプットイメージ
前述の【PowerPoint VBA】ページ番号を特定スライドだけスキップするサンプルをExcelのVBAで動作するように変換します。
VBAサンプル
VBAのサンプルは次のとおりです。
Sub PowerPointにスライド番号挿入() Dim PowerPointアプリ As Object Dim 対象ファイル As Object Dim スライド As Object Dim テキストボックス As Object Dim スライド番号 As Long ' プレゼンテーションファイルの選択' ファイルパス = Application.GetOpenFilename("PowerPoint Files (*.pptx), *.pptx", , "プレゼンテーションファイルを選択してください") If ファイルパス = "False" Then Exit Sub ' ファイルが選択されなかった場合は終了' スライド番号 = 1 ' PowerPointアプリケーションを起動' Set PowerPointアプリ = CreateObject("PowerPoint.Application") PowerPointアプリ.Visible = True ' プレゼンテーションを開く' Set 対象ファイル = PowerPointアプリ.Presentations.Open(ファイルパス) ' スライドに番号を挿入' For Each スライド In 対象ファイル.Slides If Not スライド.NotesPage.Shapes.Placeholders(2).TextFrame.TextRange.Text Like "*【非配布スライド】*" Then Set テキストボックス = スライド.Shapes.AddTextbox(msoTextOrientationHorizontal, _ 対象ファイル.PageSetup.SlideWidth - 100, _ 対象ファイル.PageSetup.SlideHeight - 50, _ 100, 30) テキストボックス.TextFrame.TextRange.Text = "P." & スライド番号 テキストボックス.TextFrame.TextRange.Font.Size = 12 ' フォントサイズを12ポイントに設定' テキストボックス.Name = "SlideNumber_" & スライド番号 ' 名前を設定' スライド番号 = スライド番号 + 1 End If Next スライド ' Excelアプリをアクティブにする' AppActivate Application.Caption MsgBox "【非配布スライド】を除き、スライドに番号を追加しました。" '終了処理' Set 対象ファイル = Nothing Set PowerPointアプリ = Nothing End Sub
以上、Excel VBAでPowerPointにスライド番号を挿入するサンプルでした。
上記コードをベースに、VBAコードの修正なく利用できるように汎用性を向上させたマクロを「note」で販売しています。スライド番号の修正時間を削減したい方にお勧めです。