PowerPoint VBA
枚数がたくさんあるスライドで、「目次をカウントしないページ番号」と「ダブりのある連番」を全角文字で振りたいあなたへ
'※※※※※※※※※※※※※ 注 意 書 き ※※※※※※※※※※※※※
'※ ※
'※ このテキストを全コピーし、 『Ctrl + A』、『Ctrl + C』 ※
'※ 当該資料のPowerPointを開き、 ※
'※ VBEを開く(※開発タブ(要設定)) 『Alt + F11』 ※
'※ 標準モジュールを開く 『「Alt」 → 「I」 → 「M」』 ※
'※ このテキストをコードウィンドウに貼り付け 『Ctrl + V』 ※
'※ マクロの実行 『F5』 ※
'※ ※
'※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
'【使い方】
'① スライドにページ番号用のテキストボックス、連番用のテキストボックスを挿入して適当な文字を入力し、任意のフォントに変更
'② [ホーム]タブ → [選択] → [オブジェクトの選択と表示]で、①のテキストボックスの名前をマクロ上で使用する名前に変更
'※ 「SlideNumberBox」及び「Renban」に変更
'③ 全てのスライドに作成したテキストボックスをコピーして貼り付け
'※ 全てのスライドのコピーするテキストボックスの名前は「SlideNumberBox」「Renban」である必要あり
'④ このマクロを実行
'※ スライドを追加削除した場合に連動しませんが、マクロを再度実行すれば番号が更新されます。
i = 1 '★ページ番号(開始番号になります。用途に合わせて変更してください。)
k = 1 '★連番(開始番号になります。用途に合わせて変更してください。)
Sub SetSlideNumbersInExistingTextBox()
Dim slide As slide
Dim shape As shape
Dim shape2 As shape
For Each slide In ActivePresentation.Slides
On Error Resume Next
Set shape = slide.Shapes("SlideNumberBox")
Set shape2 = slide.Shapes("Renban")
'★ページ番号 目次以外のスライドに「SlideNumberBox」のテキストボックスを配置してください。
If Not shape Is Nothing Then
shape.TextFrame.TextRange.Text = StrConv(i, vbWide) '「= StrConv(slide.SlideNumber, vbWide)」にすると全角の※スライド番号が入ります。
i = i + 1
End If
'★連番
If Not shape2 Is Nothing Then
If slide.SlideNumber <> 29 Or slide.SlideNumber <> 39 Then
shape2.TextFrame.TextRange.Text = StrConv(k, vbWide)
k = k + 1 'この例では、29枚目または39枚目でなければカウントアップしています。
Else
shape2.TextFrame.TextRange.Text = StrConv(k, vbWide)
End If
End If
On Error GoTo 0
Next slide
End Sub
参考文献・リンク
- Microsoft Learn「パワーポイントのスライド番号の全角数字化についてお聞きしたいです。」
https://learn.microsoft.com/ja-jp/answers/questions/5327666/(ms-)