我正在为我所在的组织制作一个 PowerPoint Escape Room。为了加入更多有趣和复杂的谜题,我尝试在 VBA 中涉足,以便让这些谜题栩栩如生。其中之一就是下图中的这个谜题:
简而言之,这些线索将引导玩家确定他们需要将红-金-绿-金颜色序列输入到地球下方的圆圈中。我已经把颜色输入下来了。这是该步骤的代码,灵感来自本视频 ( https://www.youtube.com/watch?v=xT7XW9maPwo ) 中的 Bhavesh Shaha:
Dim RGB As Variant
Sub ChooseColor(oSh As Shape)
RGB = oSh.Fill.ForeColor.RGB
End Sub
Sub CircleColor(oSh As Shape)
oSh.Fill.ForeColor.RGB = RGB
End Sub
就其预期目的而言,上述代码完美运行。
我现在的问题是:如果所有圆圈的颜色都正确,有没有办法让当前幻灯片移到下一张幻灯片?我尝试将其作为“Enter”按钮的宏,但未成功:
Dim oSh As Shape
Dim oSl As Slide
Sub GlobeKey()
If .oSh(1).Fill.ForeColor.RGB = RGB(255, 0, 0) Then
If .oSh(2).Fill.ForeColor.RGB = RGB(255, 192, 0) Then
If .oSh(3).Fill.ForeColor.RGB = RGB(0, 176, 80) Then
If .oSh(4).Fill.ForeColor.RGB = RGB(255, 192, 0) Then
ActivePresentation.SlideShowWindow.View.Next
End If
End If
End If
End If
End Sub
从理论上讲,这个宏会将玩家带到下一张幻灯片,他们可以在其中单击超链接到下一步的键。这张幻灯片如下图所示:
非常感谢您的帮助和考虑!