想要提高讲座水平,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
网友评论