powerpoint,vba,从特定集合生成随机数

时间:2015-05-06 13:57:53

标签: vba powerpoint

VBA - 如何在特定集3,5,7,9,11,13中生成随机数。 这些数字表示用户在单击按钮时将被带到的幻灯片编号(目的地)。

1 个答案:

答案 0 :(得分:1)

编辑:根据OP

的要求进行了修改,以包含更全面的解决方案

目标:在单击按钮后随机选择六个可能的幻灯片编号之一。

第1步:随机化幻灯片编号选择的代码

将目标值映射到数组中。注意结果数组中元素的数量 - 在这种情况下,6。生成1到6的随机整数,并使用该值作为数组的索引,返回该索引位置的值。

类似以下内容(未经测试)

function randomSlideNumber() as Integer

   Dim index 
   Dim targetValues(1 to 6) as Integer

   targetValues(1) = 3
   targetValues(2) = 5
   targetValues(3) = 7
   targetValues(4) = 9
   targetValues(5) = 11
   targetValues(6) = 13

   index = Int(6 * Rnd + 1)

   randomSlideNumber = targetValues(index)

end function

第2步:将幻灯片添加到Powerpoint演示文稿中,最多可达随机选择器中所需的数字

我假设OP在他的演讲中已经有至少13张幻灯片:)

步骤3:向演示文稿添加其他幻灯片,并向其添加CommandButton

  1. 在Powerpoint中激活新幻灯片后,点击“开发者”按钮。标签。
  2. 从“控件”工具栏中选择一个CommandButton,然后将其绘制到新幻灯片上。 VBA Controls w/CommandButton highlighted PowerPoint slide with VBA CommandButton
  3. 双击CommandButton。这应该打开VBA编辑器,其中包含CommandButton的存根Click事件处理程序,名为CommandButton1_Click()enter image description here
  4. 修改处理程序代码,如下所示:
  5. P

    Private Sub CommandButton1_Click()
    
        SlideShowWindows(1).View.GotoSlide randomSlideNumber
    
    End Sub
    

    步骤5:使用带有新CommandButton作为起点的幻灯片开始幻灯片放映

    1. 在新幻灯片处于活动状态时,选择"幻灯片"功能区栏中的标签
    2. 点击"从当前幻灯片"来自"开始幻灯片放映"栏。
    3. Start Slide Show with new slide

      步骤6:点击幻灯片上的CommandButton,并验证活动幻灯片是否更改为randomSlideNumber()功能返回的其中一个

      瞧! :)

      代码讨论

      注意:这涉及有关PowerPoint VBA对象模型的一些细节。

      单击步骤3中创建的幻灯片中的CommandButton会触发在步骤4中创建的CommandButtton1_Click()事件处理程序。事件处理程序将转到第一个View对象的当前SlideShowWindow { {1}},并调用SlideShowWindow(1).View的{​​{1}}方法。 GotoSlide方法需要幻灯片编号作为参数,该参数由对' randomSlideNumber'的随机调用提供。之前定义的函数。该函数应返回3,5,7,9,11或13中的一个。

      应该做的伎俩。 警告:此代码中显然没有错误处理;它的添加留作练习。此外,这已经针对最新版本的Powerpoint进行了广泛测试,但确实可以在我创建的测试shell中使用。