10

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

4

2 回答 2

9

谢谢史蒂夫。我在其他地方找到了我的问题的答案。下面的功能可以避免隐藏幻灯片干扰演示模式下未隐藏幻灯片的幻灯片编号。

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
于 2014-10-20T15:47:00.850 回答
0

在 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.Hidden 属性为 True,则不计其数。

于 2014-10-15T15:31:45.650 回答