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

powerpoint, vba, generate a random number from a specific set

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

编辑:根据 OP

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

Objective:随机 select 单击按钮后显示的六个可能的幻灯片编号之一。

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

将目标值映射到数组中。请注意结果数组中的元素数量 - 在本例中为 6。生成 1 到 6 之间的随机整数,并将该值用作数组的索引,returning 该索引位置的值。

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

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 演示文稿中,随机添加所需数量的幻灯片 select 或

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

第 3 步:向演示文稿添加额外的幻灯片,并向其添加命令按钮

  1. 在 Powerpoint 中激活新幻灯片后,单击 'Developer' 选项卡。
  2. Select a CommandButton 从控件工具栏,并将其绘制到新幻灯片上。
  3. Double-click 命令按钮。这应该打开 VBA 编辑器,其中包含命令按钮的存根 Click 事件处理程序,称为 CommandButton1_Click()
  4. 修改handler代码如下:

P

Private Sub CommandButton1_Click()

    SlideShowWindows(1).View.GotoSlide randomSlideNumber

End Sub

第 5 步:开始放映幻灯片,使用带有新命令按钮的幻灯片作为起点

  1. 新幻灯片处于活动状态时,select 功能区栏中的 "Slide Show" 选项卡
  2. 单击 "Start Slide Show" 栏中的 "From Current Slide"。

第 6 步:单击幻灯片上的命令按钮,验证活动幻灯片是否更改为 return由 randomSlideNumber() 函数 编辑的幻灯片之一

瞧! :)

代码讨论

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

单击在步骤 3 中创建的幻灯片中的命令按钮会触发在步骤 4 中创建的 CommandButtton1_Click() 事件处理程序。事件处理程序然后转到第一个 SlideShowWindow 的当前 View对象 SlideShowWindow(1).View,并调用 ViewGotoSlide 方法。 GotoSlide 方法需要一个 幻灯片编号 作为参数,这是通过调用之前定义的 'randomSlideNumber' 函数提供的。该函数应该 return 3、5、7、9、11 或 13 之一。

应该 可以解决问题。 注意事项:这段代码中显然没有错误处理;它的添加留作练习。此外, 针对最新版本的 Powerpoint 进行了广泛测试,但在我创建的 shell 测试中确实有效。