如何在powerpoint vba中创建进度条?

时间:2010-02-17 21:28:35

标签: vba progress-bar powerpoint powerpoint-vba

如何使用PowerPoint VBA创建进度条?它应该在幻灯片上以动画形式完成。

3 个答案:

答案 0 :(得分:5)

这是你要找的吗?

http://www.pptfaq.com/FAQ00597.htm

答案 1 :(得分:2)

这个将把条放在顶部并防止它出现在第一张幻灯片上(与pptfaq脚本不同):

http://www.faronics.com/news/blog/how-to-add-a-progress-bar-to-powerpoint/

  1. 在Power Point中,转到工具>宏> Visual Basic编辑器。

  2. 在Office 2010中,您可能需要激活“开发人员”选项卡才能访问 编辑。 Mac版本将通过开发人员带您到那里 标签>编辑。

  3. 进入编辑器后,请插入>模块。

  4. 四个。将以下代码粘贴到这个新创建的模块中:

    Sub Presentation_Progress_Marker() 
    On Error Resume Next 
    With ActivePresentation 
    For N = 2 To .Slides.Count
    .Slides(N).Shapes(“Progress_Marker”).Delete 
    Set s = .Slides(N).Shapes.AddShape(msoShapeRectangle, 0, 0, N * .PageSetup.SlideWidth /.Slides.Count, 10) 
    Call s.Fill.Solid
    s.Fill.ForeColor.RGB = RGB(23, 55, 94) 
    s.Line.Visible = False
    s.Name = “Progress_Marker” Next N: End With End Sub
    

    五。关闭编辑器。最后,运行宏:工具>宏>宏和     选择-Presentation_Progress_Marker。

答案 2 :(得分:0)

如何添加Microsoft的进度条控件?

由于PowerPoint不是实时应用程序,因此如果使用某些形状进行制作,则可能无法看到进度条移动。有时你可能最终只看到最终结果 - 只有完整的条甚至根本没有。 相反,进度条控件更实时'或者更多的时间。(我承认这是一个经典的设计。)

这是某人的一些步骤:

  1. 要添加进度条控件,首先需要在VBE(Alt-F11)窗口中添加UserForm。 (菜单:插入 - 用户窗体)

  2. 右键单击出现的工具箱窗口,然后选择其他控件。 向下滚动并检查“Microsoft Progress Bar Control,版本x.0' (此控件由MSCOMCTL.OCX提供)

  3. 单击“确定”。现在,您可以在工具列表的末尾看到进度条图标。 单击它并在UserForm1上绘制一个进度条。调整UserForm1窗口的大小。越小越好。 您可以在' UserForm1'中更改窗口的标题。进步......'或者通过更改“属性”窗口中的“标题”值来表示您喜欢的任何消息。

    1. 添加模块并输入如下代码。
    2. Option Explicit
      Sub MyJob()

      'Show the Progress Bar window UserForm1.Show vbModeless 'vbModeless option should be added Dim i As Long, Total As Long Total = 200 Randomize For i = 1 To Total 'put some code here. Especially, some jobs that take some time. 'for example, add a rounded box with random color on slide #1 With ActivePresentation.Slides(1).Shapes.AddShape(msoShapeRoundedRectangle, i, i, 500, 200) .Name = "Shape_" & i .Fill.ForeColor.RGB = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd) .Adjustments(1) = 0.5 .Line.Visible = msoFalse .TextFrame.TextRange = i End With 'Update the Progress bar UserForm1.ProgressBar1.Value = Int(i * 100 / Total) 'integer between 0 and 100. Otherwise, pops up an error UserForm1.Repaint 'refresh the Userform Next i 'close ProgressBar UserForm Unload UserForm1 End Sub

      默认情况下,进度条的值应为0到100之间的整数。如果是' 101',则会出现错误。所以要小心。

      1. 此外,您可以通过更改属性值来更改进度条的形状。例如,条形大小,位置(顶部,左侧),最小值(0)或最大值(默认情况下,它是100,但您可以将其更改为50或任何值。)。也可以通过编程方式更改它们。
      2. 进度条有些过时,但比用户创建的形状类型进度条更快(?)反应很有用。