原文自:http://www.newsmth.net/bbscon.php?bid=612&id=93742
及:http://oicu.cc.blog.163.com/blog/static/1230394712010611039349/
作者:dukenuke
用 VBA 实现在 PPT 最下边加个进度条,方便查看进行到总长度的多少,
抓住了听讲人的心理:“啥时候才能讲完啊?”
打开 PPT,按 Alt+F8 新建个宏,随便取个宏名,不用改宏作用区域,
点“创建”,删除模块里的内容,把代码复制过去。
(按 Alt+F11 之后插入模块也可以)
进度条宏的作者是水木社区的 dukenuke 。
Sub ProgressBar() ' by dukenuke@newsmth.net ' Sun Jul 11 00:06:13 2010 Dim mySlides As Slides Dim pageBar As ShapeRange Dim pageSHower As Shape Dim pageWidth, pageHeight, pageStep Set mySlides = Application.ActivePresentation.Slides pageWidth = Application.ActivePresentation.SlideMaster.Width pageHeight = Application.ActivePresentation.SlideMaster.Height pageStep = pageWidth / mySlides.Count On Error Resume Next For i = 2 To mySlides.Count Set pageBar = mySlides.Item(i).Shapes.Range(Array()) Set pageBar = _ mySlides.Item(i).Shapes.Range(Array("RectanglePageNum")) If IsNull(pageBar) Or pageBar.Count = 0 Then GoTo newBar Set pageSHower = pageBar.Item(1) GoTo nextPage newBar: Set pageSHower = mySlides.Item(i).Shapes.AddShape( _ msoShapeRectangle, 0, _ pageHeight - 3, i * pageStep, 3) pageSHower.Name = "RectanglePageNum" nextPage: pageSHower.Fill.ForeColor.RGB = RGB(179, 162, 199) pageSHower.Line.Visible = msoFalse pageSHower.Width = i * pageStep pageSHower.Top = pageHeight - 3 pageSHower.Left = 0 pageSHower.Height = 3 Next End Sub |
颜色尺寸可以更改,现在的高度是3,在页面最下方,颜色是淡紫色。
PowerPoint 2007/2010 需要另存为带宏的演示文稿,还可以把宏按钮添加
到快速访问工具栏。
开始讲 PPT 前先运行宏(按 Alt+F8 或用快速访问工具栏),运行一次即可,
播放幻灯片时就会自动加上进度条,只有第一页不加,会自动根据当前页
面数刷新进度。
注:增减幻灯片(总页数改变)后要重新运行一次宏。