使用VBA

时间:2015-12-21 15:40:50

标签: powerpoint-vba

我在PowerPoint 2013中添加了一个标签,其中包含以下代码以显示" x的y"在所有幻灯片的底部,其中x是当前幻灯片编号,y是幻灯片的总数:

Private Sub Label1_Click()
Dim p1 As String
p1 = " of "
Dim p2 As Integer
Dim slideNumber As String
slideNumber = ActiveWindow.Selection.SlideRange.slideNumber
p2 = ActivePresentation.Slides.Count
Label1.Caption = slideNumber & p1 & p2

End Sub

该代码适用于我添加了标签的幻灯片,例如它显示了" 9 of 29"对于我的总共29张幻灯片中的幻灯片9,但是当我将标签复制并粘贴到其他幻灯片上时,它仍显示29" 9&29;这是错误的,因为我希望它能自动反映当前的幻灯片编号。

1 个答案:

答案 0 :(得分:1)

如果您希望这可以在所有幻灯片中使用,那么单击按钮一次更新所有幻灯片编号会不会更简单?

假设您在每张幻灯片上都有一个名为“SlideNumber”的形状:

Sub ForExample()
    Dim oSl As Slide

    For Each oSl In ActivePresentation.Slides
        With oSl.Shapes("SlideNumber").TextFrame.TextRange
            .Text = "Slide " & CStr(oSl.SlideIndex) & " of " _
                & CStr(ActivePresentation.Slides.Count)
        End With
    Next

End Sub