在powerpoint VBA中推进两张幻灯片

在powerpoint VBA中推进两张幻灯片,vba,powerpoint,Vba,Powerpoint,我正试图根据回应来推进幻灯片。如果用户选择easy,我想向前看两张幻灯片,如果用户选择hard,我想向前看一张幻灯片。这是我当前的代码。Nextpage脚本不起作用,我希望它能用于多个问题——我似乎无法让它与幻灯片+1或幻灯片+2(或++)这样的东西一起工作 我认为这样做可能会有所帮助: Nextpage() Dim currentSlide as Slide Set currentSlide = ActivePresentation.SlideshowWindow.View.Slide

我正试图根据回应来推进幻灯片。如果用户选择easy,我想向前看两张幻灯片,如果用户选择hard,我想向前看一张幻灯片。这是我当前的代码。Nextpage脚本不起作用,我希望它能用于多个问题——我似乎无法让它与幻灯片+1或幻灯片+2(或++)这样的东西一起工作


我认为这样做可能会有所帮助:

Nextpage()
Dim currentSlide as Slide
Set currentSlide = ActivePresentation.SlideshowWindow.View.Slide

    If ActivePresentation.Slides(2).Shapes("selection_hard").Visisble = True Then
        ActivePresentation.SlideShowWindow.View.GotoSlide currentSlide.SlideIndex + 1

    ElseIf ActivePresenation.Slides(2).Shapes("selection_easy").Visible = True Then
        ActivePresenation.SlideShowWindow.View.GotoSlide currentSlide.SlideIndex + 2
    End If
End Sub
假设“响应”意味着点击两个形状中的一个(容易或难),那么就可以了。您只需确保形状中的文本与下面的代码匹配,并将HandleClick宏作为RunMacro操作设置指定给每个形状(将它们指定给其中两个,然后根据需要将形状复制/粘贴到其他位置)

有几个额外的环跳通过让这个工作在Mac上;如果你也需要它在那里工作,就大声喊

Sub HandleClick(oSh As Shape)

    ' Did they click the Easy or Hard button?
    ' oSh contains a reference to the shape they clicked
    ' Look a the text in oSh to decide where to go next:

    Select Case UCase(oSh.TextFrame.TextRange.Text)
        Case Is = "EASY"
            SlideShowWindows(1).View.GotoSlide (oSh.Parent.SlideIndex + 2)
        Case Is = "HARD"
            SlideShowWindows(1).View.GotoSlide (oSh.Parent.SlideIndex + 1)
        Case Else
            ' Do nothing
    End Select

End Sub
这会在单击幻灯片后立即使其前进。如果您希望用户能够选择答案,然后继续前进,那么您需要一种不同的方法

您可以根据用户的选择,将全局变量的值设置为“EASY”或“HARD”,而不是像上面那样立即前进


然后在分配给前进按钮的单独宏中,根据全局变量的值前进一到两张幻灯片

所以对于这个,对于ElseIf声明,我真的需要说+2吗?谢谢。不,不幸的是没有。你知道为什么吗?不,按钮什么都没用。谢谢那么,你的问题是什么?我不得不假设您原来的子
NextPage
已经开始工作了——但是您需要创建该变量,而不是总是转到幻灯片3或幻灯片4。谢谢!因此,其中显示“easy”的对象在单击时链接到run Shoe_easy(),而“hard”对象链接到Shoe_hard()。我对“案例”指的是什么感到困惑。为什么我不必把它和一些语句联系起来,比如Case Is=ShoeAnswer=“easy”?那是oSh的b/c吗?此外,形状表示“容易”,但我没有将动作链接到文本,只有形状。此外,我意识到这将自动推进幻灯片。我希望这个宏在另一个按钮上运行--前进箭头,这样用户可以在继续之前根据需要切换答案。谢谢对如前所述,当用户单击其中包含“Easy”的形状时,它将前进两张幻灯片,这是您要求的。如果您愿意,它可以调用另一个子例程。阅读Select Case的文档,了解其工作原理,并阅读上面示例的编辑版本,以获取更多评论。宏可以指定给您喜欢的任何形状。
Sub HandleClick(oSh As Shape)

    ' Did they click the Easy or Hard button?
    ' oSh contains a reference to the shape they clicked
    ' Look a the text in oSh to decide where to go next:

    Select Case UCase(oSh.TextFrame.TextRange.Text)
        Case Is = "EASY"
            SlideShowWindows(1).View.GotoSlide (oSh.Parent.SlideIndex + 2)
        Case Is = "HARD"
            SlideShowWindows(1).View.GotoSlide (oSh.Parent.SlideIndex + 1)
        Case Else
            ' Do nothing
    End Select

End Sub