美文网首页
小脚本 | PPT播放时显示页码和总页数

小脚本 | PPT播放时显示页码和总页数

作者: 12ebfd5642fe | 来源:发表于2016-10-26 19:28 被阅读456次

    想要提高讲座水平,PPT中的辅助功能可以派上大用场,页脚中的时间和页码功能都可以帮助演讲者控制整体进度。<#>可以显示当前页码,但如果想同时显示总页数,常见做法是在母版视图中修改一下(如<#>/45)。修改之后需要在插入菜单中打开页脚界面,点击全部应用(一次无效就重复勾选“页码”多次应用)。

    这种方法需要在每次修改ppt时都要记得修改总页数,稍不注意就露出马脚。这完全不是我们懒人的风格嘛,懒人需要的是一劳永逸的方法。

    程序猿的世界里,理论上没有程序解决不了的问题,这回是大微软的VBA来救场。本想重复利用这个“页码”对象的,谁料他命名随意,不同页面中可能不一样,不好分辨。只好在播放时临时添加个文本框,播放结束后再统一删除。另外标题页不想显示页码,这点取了个巧,找不到正规的属性,直接用当前页面中图形的数量来判断,通常标题页元素都较少:)

    以下是全部代码,非常不规范,凑合用吧。

    Sub OnSlideShowPageChange()
        On Error GoTo Err_Handle
        ActivePresentation.Slides(ActivePresentation.SlideShowWindow _
        .View.CurrentShowPosition).Shapes("asdf").Delete
    Err_Handle:
        If ActivePresentation.Slides(ActivePresentation.SlideShowWindow _
        .View.CurrentShowPosition).Shapes.Count > 3 Then
            With ActivePresentation.Slides(ActivePresentation.SlideShowWindow. _
            View.CurrentShowPosition).Shapes.AddTextbox(msoTextOrientationHorizontal, _
            ActivePresentation.PageSetup.SlideWidth - 60, _
            ActivePresentation.PageSetup.SlideHeight - 20, 100, 10)
                .Name = "asdf"
                .TextFrame.TextRange.Font.Color.RGB = RGB(144, 144, 144)
                .TextFrame.TextRange.Font.Name = "Arial"
                .TextFrame.TextRange.Font.Size = 12
                .TextFrame.TextRange.Text = Str(ActivePresentation.SlideShowWindow _
                .View.CurrentShowPosition) & "/" & Str(ActivePresentation.Slides.Count)
            End With
        End If
    End Sub
    
    Sub OnSlideShowTerminate()
        On Error Resume Next
        For i = 1 To ActivePresentation.Slides.Count
            ActivePresentation.Slides(i).Shapes("asdf").Delete
        Next
    End Sub
    

    相关文章

      网友评论

          本文标题:小脚本 | PPT播放时显示页码和总页数

          本文链接:https://www.haomeiwen.com/subject/vtfjuttx.html