如何不计算PPT中隐藏幻灯片的页码



在演示模式下,我只希望取消隐藏的幻灯片以连续页码显示。如何避免计算隐藏的幻灯片?

感谢Steve。我在别处找到了问题的答案。下面的功能可以避免隐藏的幻灯片在演示模式下干扰未隐藏幻灯片的幻灯片编号。
Sub Number_NonHidden()
'For v.2007 onwards only
Dim osld As Slide
Dim objSN As Shape
Dim lngNum As Long
'check all slides
For Each osld In ActivePresentation.Slides
'Is it hidden
If osld.SlideShowTransition.Hidden Then
osld.HeadersFooters.SlideNumber.Visible = False
Else
osld.HeadersFooters.SlideNumber.Visible = True
Set objSN = getNumber(osld)
lngNum = lngNum + 1
If Not objSN Is Nothing Then ' there is a number placeholder
objSN.TextFrame.TextRange = CStr(lngNum + 1)
End If
End If
Next osld
End Sub
Function getNumber(thisSlide As Slide) As Shape
For Each getNumber In thisSlide.Shapes
If getNumber.Type = msoPlaceholder Then
If getNumber.PlaceholderFormat.Type = ppPlaceholderSlideNumber Then
'it's the slide number
Exit Function
End If
End If
Next getNumber
End Function

为了避免标题幻灯片编号,请按如下方式插入lngNum=-1,并删除主标题幻灯片中的幻灯片编号框。

'check all slides
lngNum = -1
For Each osld In ActivePresentation.Slides

在VBA中,您可以执行以下操作:

Sub CountSlides()
Dim oSl As Slide
Dim x As Long
For Each oSl In ActivePresentation.Slides
    If Not oSl.SlideShowTransition.Hidden Then
        x = x + 1
    End If
Next
MsgBox x
End Sub

换句话说,如果幻灯片的SlideShowTransition.Hiddden属性为True,则不计算在内。

最新更新