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」で販売しています。スライド番号の修正時間を削減したい方にお勧めです。