2015-12-21 57 views
0

我已经在PowerPoint 2013中添加了一个标签,使用以下代码在所有幻灯片的底部显示“x的y”,其中x是当前幻灯片编号,y是幻灯片的总数:使用VBA在PowerPoint中自动幻灯片编号

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 

该代码完美适用于我已添加标签的幻灯片,例如它显示了我29张幻灯片中的9张幻灯片中的“9张”,但是当我在其他幻灯片上复制并粘贴标签时,仍然显示“9张29张”,这是错误的,因为我预计它会自动反映当前幻灯片编号。

回答

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 
+0

谢谢。但是,我不知道如何为形状设置名称,例如将形状设置为“SlideNumber”,因为它在PowerPoint 2013中的“开发人员”选项卡下没有活动属性部分。 – JasonStack

+0

您可以在所有最新的PPT版本的“选择”窗格中重命名该形状,或者选择该形状,然后执行此操作:ActiveWindow.Selection.ShapeRange(1 ).Name =“无论你喜欢” –

相关问题