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 步:向演示文稿添加额外的幻灯片,并向其添加命令按钮
- 在 Powerpoint 中激活新幻灯片后,单击 'Developer' 选项卡。
- Select a
CommandButton
从控件工具栏,并将其绘制到新幻灯片上。
- Double-click 命令按钮。这应该打开 VBA 编辑器,其中包含命令按钮的存根 Click 事件处理程序,称为
CommandButton1_Click()
。
- 修改handler代码如下:
P
Private Sub CommandButton1_Click()
SlideShowWindows(1).View.GotoSlide randomSlideNumber
End Sub
第 5 步:开始放映幻灯片,使用带有新命令按钮的幻灯片作为起点
- 新幻灯片处于活动状态时,select 功能区栏中的 "Slide Show" 选项卡
- 单击 "Start Slide Show" 栏中的 "From Current Slide"。
第 6 步:单击幻灯片上的命令按钮,验证活动幻灯片是否更改为 return由 randomSlideNumber()
函数 编辑的幻灯片之一
瞧! :)
代码讨论
注意:这涉及到有关 PowerPoint VBA 对象模型的一些细节。
单击在步骤 3 中创建的幻灯片中的命令按钮会触发在步骤 4 中创建的 CommandButtton1_Click()
事件处理程序。事件处理程序然后转到第一个 SlideShowWindow
的当前 View
对象 SlideShowWindow(1).View
,并调用 View
的 GotoSlide
方法。 GotoSlide
方法需要一个 幻灯片编号 作为参数,这是通过调用之前定义的 'randomSlideNumber' 函数提供的。该函数应该 return 3、5、7、9、11 或 13 之一。
应该 可以解决问题。
注意事项:这段代码中显然没有错误处理;它的添加留作练习。此外,未 针对最新版本的 Powerpoint 进行了广泛测试,但在我创建的 shell 测试中确实有效。
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 步:向演示文稿添加额外的幻灯片,并向其添加命令按钮
- 在 Powerpoint 中激活新幻灯片后,单击 'Developer' 选项卡。
- Select a
CommandButton
从控件工具栏,并将其绘制到新幻灯片上。 - Double-click 命令按钮。这应该打开 VBA 编辑器,其中包含命令按钮的存根 Click 事件处理程序,称为
CommandButton1_Click()
。 - 修改handler代码如下:
P
Private Sub CommandButton1_Click()
SlideShowWindows(1).View.GotoSlide randomSlideNumber
End Sub
第 5 步:开始放映幻灯片,使用带有新命令按钮的幻灯片作为起点
- 新幻灯片处于活动状态时,select 功能区栏中的 "Slide Show" 选项卡
- 单击 "Start Slide Show" 栏中的 "From Current Slide"。
第 6 步:单击幻灯片上的命令按钮,验证活动幻灯片是否更改为 return由 randomSlideNumber()
函数 编辑的幻灯片之一
瞧! :)
代码讨论
注意:这涉及到有关 PowerPoint VBA 对象模型的一些细节。
单击在步骤 3 中创建的幻灯片中的命令按钮会触发在步骤 4 中创建的 CommandButtton1_Click()
事件处理程序。事件处理程序然后转到第一个 SlideShowWindow
的当前 View
对象 SlideShowWindow(1).View
,并调用 View
的 GotoSlide
方法。 GotoSlide
方法需要一个 幻灯片编号 作为参数,这是通过调用之前定义的 'randomSlideNumber' 函数提供的。该函数应该 return 3、5、7、9、11 或 13 之一。
应该 可以解决问题。 注意事项:这段代码中显然没有错误处理;它的添加留作练习。此外,未 针对最新版本的 Powerpoint 进行了广泛测试,但在我创建的 shell 测试中确实有效。