为PPT添加进度条

PPT页数多的时候,总等不到演讲者结束。自己反过来想,我的PPT必须每次添加进度条,让听的人心里有个数,到底ta还要忍受多少页PPT才能离开。
自己新建了一个PPT模板,添加了多个主题,填了VBA代码,保存为potm后缀的模板文件。每次编辑完PPT后,到开发工具->,点击运行一次就好了。

Sub AddProgressBar()
 On Error Resume Next
  '当前PPT文件
  With ActivePresentation 
    'iterate through slides
    '每一张幻灯片都要加
    For X = 1 To .Slides.count 
        'delete them if shapes PB and PBtag exist
        '把已有的shape都删掉,旧的
        .Slides(X).Shapes("PB").Delete
        .Slides(X).Shapes("PBTag").Delete
       '跳过第一章幻灯片,也就是第一张不加进度条
        If X = 1 Then
           GoTo NextLoop
        End If
        '_ is next line combiner
        '开始计算页数,百分比,这些性状需要放的位置
        Dim margin As Double, width As Double, count As Integer, curPos As Double, curRatio As Double
        count = .Slides.count
        margin = 35.64 
        'the distance between the left border of Slide and this object
        '设定进度条里两边的距离
        width = .PageSetup.SlideWidth - (margin * 2) 'full width of PB
        '得到进度条的最大宽度,也就是最后一页的长度,100%
        curPos = X * width / count 'width of PB per Slide
        '获取当前幻灯片的进度条长度
        curRatio = Round(X / count, 4) * 100 
        'percentage  of current Slide
        '获得当前幻灯片的进度百分比
        'Add corner-rounded rectangle
        Set bar = .Slides(X).Shapes.AddShape(msoShapeRoundedRectangle, margin, -2, curPos, 3)
        ' bar就是当前页面进度条对象
        'font color and Name of PB
        '设置条的阴影效果
        With bar.Shadow
            .Blur = 6
            .OffsetX = 1
            .OffsetY = 2
            .ForeColor.RGB = RGB(100, 100, 100)
        End With
        '设置对象的名字,和背景色
        With bar
            .Name = "PB"
            .Fill.ForeColor.RGB = RGB(252, 255, 2)
        End With
        'border style of PB
        '去掉边框
        With bar.Line
          .Visible = msoFalse
        End With
        
        'XXXXXXXXXXXXXXXX
        'Add PBTag Shape
        'XXXXXXXXXXXXXXXX
        ' 数字显示的标记的对象bartag
        Set bartag = .Slides(X).Shapes.AddShape(msoShapeCloud, curPos + 9.89, 3, 62.9, 22.44)
        With bartag
            '.Rotation = 180 '不行字也会倒过来
            .TextFrame.TextRange = X & "/" & count
            .Name = "PBTag"
            ' 背景色
            With .Fill
                .ForeColor.RGB = RGB(252, 255, 2)
            End With
             '设置字体效果
            With .TextFrame.TextRange.Font
                .Size = 13
                .Name = "Yu Gothic UI"
                .Bold = msoTrue
                .Color.RGB = RGB(100, 100, 100)
                .HorizontalAlignment = msoAnchorCenter
            End With
            '添加阴影效果
            With .Shadow
                .Blur = 6
                .OffsetX = 1
                .OffsetY = 2
                .ForeColor.RGB = RGB(100, 100, 100)
            End With
            '去掉边框
            With .Line
                .Weight = 0.5
                .ForeColor.RGB = RGB(255, 235, 50)
            End With
        End With
NextLoop:
    Next X:
  End With
End Sub
Resultant Display

不足

  1. PBTag的位置需要依据页数的多少,以及字体,字体的大小等,自己设置,也就是下面的,参数2和4

      (msoShapeCloud, curPos + 9.89, 3, 62.9, 22.44)
    
  2. 如果需要显示百分比

    .TextFrame.TextRange = X & "/" & count
    

    改成下面的就可以了

    .TextFrame.TextRange = curRatio
    

引用

  1. PowerPoint VBA reference | MSDN
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容