|
首页开始有页码:X/Y
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
次页开始有页码:2/Y
Sub UpdatePageNumbersXYZ()
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
' 跳过首页(编号为1的幻灯片)
If slideNumber = 1 Then GoTo SkipPageNumber
' 在右下角添加文本框(位置参数可自行调整)
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
SkipPageNumber:
Next slide
End Sub
次页开始有页码:1/Y
Sub UpdatePageNumbersXYA()
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
' -------------------------- 生成新页码(从第二页开始,显示为1/Y)------------------
For Each slide In ActivePresentation.Slides
slideNumber = slide.slideNumber
' 跳过首页(编号为1的幻灯片)
If slideNumber = 1 Then GoTo SkipPageNumber
' 在右下角添加文本框(位置参数可自行调整)
Set textBox = slide.Shapes.AddTextbox( _
Orientation:=msoTextOrientationHorizontal, _
Left:=slide.Design.SlideMaster.Width - 80, _
Top:=slide.Design.SlideMaster.Height - 30, _
Width:=150, Height:=30)
' 调整页码显示逻辑:从第二页开始,页码从1开始计数
textBox.TextFrame.TextRange.Text = slideNumber - 1 & "/" & totalSlides - 1
' 统一字体样式(含加粗)
With textBox.TextFrame.TextRange.Font
.Name = "Arial"
.Size = 12
.Color.RGB = RGB(0, 0, 0)
.Bold = msoTrue ' 新增加粗
End With
SkipPageNumber:
Next slide
End Sub
|
|