有时,您可能希望通过随机播放幻灯片来为 PowerPoint 演示文稿添加惊喜元素。例如,也许您为学生创建了一个演示文稿,并想要随机播放部分或全部抽认卡。
默认情况下,PowerPoint 没有内置的此功能,但您可以使用宏来实现。在本分步指南中,我们将向您展示如何手动随机播放幻灯片以及如何使用 VBA 代码自动执行随机随机播放过程。
如何在 PowerPoint 中手动随机播放幻灯片
在 Microsoft PowerPoint 中,您可以使用“幻灯片排序器”视图手动打乱演示文稿中的幻灯片,以随机顺序显示它们。虽然此方法可能不像使用宏那样随机,但它仍然允许您以不同的顺序重新排列幻灯片。
要手动随机播放 PowerPoint 演示文稿中的幻灯片,请按照以下步骤操作。
请记住,此方法不能保证完全随机的顺序,因为它取决于您的手动安排。如果您希望在按下显示下一张幻灯片的按钮后看到完全随机的幻灯片,您可以使用 VBA 宏方法进行更精确和自动的随机洗牌。.
如何使用 VBA 代码随机化 PowerPoint 幻灯片
为了确保您的 PowerPoint 幻灯片以完全随机的顺序播放,您需要使用一些编码。 Microsoft Office PowerPoint 中的宏选项允许您运行 VBA 代码来自动随机播放演示文稿中的幻灯片。
在本教程中,我们将向您展示如何无重复地随机播放幻灯片。要在 PowerPoint 中随机化幻灯片以使同一张幻灯片不会重复,请按照以下步骤操作。
子随机幻灯片()
第一张幻灯片 = 2
最后一张幻灯片 = 5
随机
“在第一张幻灯片和最后一张幻灯片之间生成一个随机编号”
GRN:
RSN = Int((LastSlide – FirstSlide + 1) * Rnd + FirstSlide)
如果 RSN = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex 则转到 GRN
ActivePresentation.SlideShowWindow.View.GotoSlide (RSN)
结束子
在 VBA 编辑器中,调整“FirstSlide”和“LastSlide”后面的幻灯片编号,以指定要包含在随机播放中的幻灯片范围。默认情况下,随机播放从幻灯片 2 开始,以避免包含标题幻灯片。如果您希望将标题幻灯片排除在随机播放之外,请保持“FirstSlide = 2”不变。.
例如,假设您有一个包含十张幻灯片的演示文稿,并且您想跳过标题幻灯片的混排。在这种情况下,设置“FirstSlide = 2”和“LastSlide = 10”。这样,只有幻灯片 2 到 10 会包含在随机播放过程中,并且您的标题幻灯片将不受影响。
现在进入演示模式并单击第一张幻灯片上的按钮随机播放幻灯片。享受您动态且非重复的演示。
如何仅随机播放偶数或奇数幻灯片
如果您只想随机播放演示文稿中的特定幻灯片(例如偶数或奇数幻灯片),您可以使用以下 VBA 代码仅随机化偶数或奇数幻灯片,而不会干扰其余幻灯片。
为此,请按照上述步骤操作,直至进入 Visual Basic 编辑器窗口并插入以下代码。
子随机幻灯片()
EvenShuffle = True (如果仅随机播放奇数幻灯片,则替换为 false)
FirstSlide = 2 (根据需要应为偶数/奇数)
最后一张幻灯片 = 8
随机
对于 i = FirstSlide 到 LastSlide 第 2 步
生成:“在第一张幻灯片和最后一张幻灯片之间生成一个随机编号”
RSN = Int((LastSlide – FirstSlide + 1) * Rnd) + FirstSlide
如果 EvenShuffle = True 则
如果 RSN Mod 2 = 1 则转到生成
其他
如果 RSN Mod 2 = 0 则转到生成
结束如果
ActivePresentation.Slides(i).MoveTo (RSN)
如果 i
如果 i >RSN 则 ActivePresentation.Slides(RSN + 1).MoveTo (i)
下一个我
End Sub
如何在永无休止的循环中随机播放幻灯片
上面的教程演示了如何随机播放 PowerPoint 幻灯片并以随机顺序播放它们而不重复。但是,在一次循环之后,除非您再次随机播放幻灯片,否则将保持相同的随机播放顺序。
要在幻灯片放映模式下自动循环播放所有幻灯片,并为每个循环提供新的随机顺序,您可以使用以下代码。请务必更改 FirstSlide = 和 LastSlide = 之后的数字,以适合演示文稿中的幻灯片数量。
公开位置、范围、AllSlides() 作为整数
子ShuffleAndBegin()
第一张幻灯片 = 2
最后一张幻灯片 = 6
范围 =(最后一张幻灯片 – 第一张幻灯片)
重新调暗所有幻灯片(0 至范围)
对于 i = 0 到范围
所有幻灯片(i) = 第一张幻灯片 + i
下一个我
随机
对于 N = 0 到范围
J = Int((范围 + 1) * Rnd)
temp = 所有幻灯片(N)
所有幻灯片(N) = 所有幻灯片(J)
所有幻灯片(J) = 温度
下一个
位置 = 0
ActivePresentation.SlideShowWindow.View.GotoSlide AllSlides(位置)
结束子
子预付款()
位置 = 位置 + 1
如果位置 >范围,则
随机播放并开始
其他
ActivePresentation.SlideShowWindow.View.GotoSlide AllSlides(位置)
结束如果
End Sub