用 VBA 实现在 PPT 最下边加进度条,方便查看进行到总长度的多少,根据选择的页面不同,进度条的长度也不同。
提示:进度条只是体现已播放的幻灯片张数,不是用于计时。
进度条的制作添加方法如下:
打开 PPT,按 Alt+F11,打开VBE编辑器,插入——模块,并复制下面的代码,最后单击工具栏的“运行”按钮。
Sub AddProgressBar() On Error Resume Next With ActivePresentation For X = 2 To .Slides.Count - 1 '第一页和最后一页不加 .Slides(X).Shapes("PB").Delete Set s = .Slides(X).Shapes.AddShape(msoShapeRectangle, _ 0, .PageSetup.SlideHeight - 6, _ X * .PageSetup.SlideWidth / .Slides.Count, 5) '条高度 s.Fill.ForeColor.RGB = RGB(246, 202, 5) '设置颜色 s.Name = "PB" Next X: End With End Sub
第二、PPT播放时显示页码和总页数
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