|
运行一下代码试试看:
Sub UpdatePageNumbersXY()
Dim slide As slide
Dim textBox As Shape
Dim slideNumber As Integer
Dim totalSlides As Integer
Dim shapeIndex As Integer
' 获取总幻灯片数
totalSlides = ActivePresentation.Slides.Count
' -------------------------- 清除旧页码 --------------------------
For Each slide In ActivePresentation.Slides
For shapeIndex = slide.Shapes.Count To 1 Step -1
With slide.Shapes(shapeIndex)
If .HasTextFrame Then
With .TextFrame.TextRange
' 通过格式精准识别旧页码:Arial、12号、黑色、加粗、含 "/"
If .Font.Name = "Arial" And _
.Font.Size = 12 And _
.Font.Color.RGB = RGB(0, 0, 0) And _
.Font.Bold = msoTrue And _
InStr(.Text, "/") > 0 Then
.Parent.Parent.Delete
End If
End With
End If
End With
Next shapeIndex
Next slide
' -------------------------- 生成新页码(含加粗)------------------
For Each slide In ActivePresentation.Slides
slideNumber = slide.slideNumber
' 在右下角添加文本框(位置参数可自行调整)
Set textBox = slide.Shapes.AddTextbox( _
Orientation:=msoTextOrientationHorizontal, _
Left:=slide.Design.SlideMaster.Width - 80, _
Top:=slide.Design.SlideMaster.Height - 30, _
Width:=150, Height:=30)
' 设置页码内容为 X/Y 格式
textBox.TextFrame.TextRange.Text = slideNumber & "/" & totalSlides
' 统一字体样式(含加粗)
With textBox.TextFrame.TextRange.Font
.Name = "Arial"
.Size = 12
.Color.RGB = RGB(0, 0, 0)
.Bold = msoTrue ' 新增加粗
End With
Next slide
End Sub |
|