1

我将如何做到这一点?因为我不断地添加和删除幻灯片,所以我需要代码来了解我来自哪张幻灯片,而不仅仅是转到一组幻灯片。

4

4 回答 4

5
 SlideShowWindows(1).View.GotoSlide(SlideShowWindows(1).View.LastSlideViewed.SlideIndex)
于 2012-09-10T03:26:39.087 回答
0

我想到了。在浏览网页和一些思考的帮助下,我想出了这个:

为了存储当前幻灯片编号,除了需要您返回另一张幻灯片的幻灯片之外,我制作了一个模块:

Public CurrentSlide As Long, PreviousSlide As Long

Public Sub GoToPreviousSlide()
SlideShowWindows(1).View.GoToSlide (PreviousSlide)
End Sub

Public Sub StoreCurrentSlide()
CurrentSlide = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
If CurrentSlide <> 14 Then
'Execute only if the current slide is not a slide that uses this function (because if you store the current slide while in a slide that requires you to go back to another slide, it will overwrite the PurrentSlide value and render this useless). Add more slide numbers to the If statement as you need them.
PreviousSlide = CurrentSlide
Call GoToPreviousSlide
End If
End Sub

当然,我必须确保每次幻灯片更改时都调用 StoreCurrentSlide,我制作了另一个模块来自动执行此操作:

Public Sub OnSlideShowPageChange()
StoreCurrentSlide
End Sub

现在我可以在任何地方使用按钮并使用以下方法返回上一张幻灯片:

Private Sub OK_Click()
GoToPreviousSlide
End Sub
于 2012-09-10T03:02:46.523 回答
0

如果您无论如何都使用按钮,为什么不使用PPT的动作设置;分配先前查看的幻灯片的操作设置。单击该按钮将使查看者返回到他们在当前幻灯片之前正在查看的任何幻灯片。

不需要 VBA。

于 2012-09-10T14:21:58.570 回答
0

[Microsoft 365] 在演示文稿(幻灯片放映)中,键入数字并按 Enter。编辑幻灯片时,我使用保存在文件“Macros.pptm”中的这个 VBA 宏:

Sub GoToSlide()
Dim currNum As Integer, newNum As Integer, a As String
currNum = _ 
CInt(Application.ActiveWindow.View.Slide.SlideIndex)
a = InputBox("Current slide [" & currNum & "]:" & _ 
vbCrLf & _"Go to slide number:", _
"GoToSlide", currNum)
If (a <> "") Then
newNum = CInt(a)
Application.ActiveWindow.View.GoToSlide (newNum)
End If
End Sub

我已将此宏作为新命令分配给快速访问功能区。当我编辑一个牌组时,我也必须打开文件“Macro.pptm”才能找到宏。宏显示当前幻灯片编号并提示输入所需的幻灯片编号,然后转到那里(除非用户按 ESC)。

于 2020-08-29T13:02:33.623 回答