Мне бы хотелось, чтобы простой макрос запускался всякий раз, когда я вхожу в новый слайд, независимо от того, попал ли я туда обычным нажатием кнопки "вперед" или по ссылке в слайд-шоу. Это возможно? Я искал какой-то объект "страница" или "слайд", к которому я мог бы добавить действие "ввод" или "загрузить", но если оно существует, я еще не нашел его.
Цель состоит в том, чтобы установить глобальную переменную "предыдущий слайд", которая используется для реализации кнопки "Назад". Обратите внимание, что эта кнопка возвращает пользователя к последнему слайду, на котором он был, не обязательно по порядку. То есть на слайде № 4 я щелкаю ссылку на слайде № 101 в приложении, затем нажимаю кнопку "Назад", и я возвращаюсь к № 4, а не к № 100. Это прекрасно работает, мне просто нужно знать, на каком слайде я был.
В качестве обходного пути я добавляю невидимый объект в мастер слайдов с помощью действия при наведении курсора, чтобы вызвать этот макрос. Это должно сработать, но это выглядит некрасиво.
Есть ли способ лучше? Спасибо!
Вот код, который работал:
Public PreviousSlideIndex As Long
Public CurrentSlideIndex As Long
Public Sub OnSlideShowPageChange(ByVal Window As SlideShowWindow)
PreviousSlideIndex = CurrentSlideIndex
CurrentSlideIndex = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
End Sub
Sub ReturnToPreviousSlide()
ActivePresentation.SlideShowWindow.View.GoToSlide PreviousSlideIndex
End Sub
Я установил ReturnToPreviousSlide
для действия OnClick для моей кнопки «Назад», и все хорошо.
Вы можете сделать это немного сложнее со стеком предыдущих страниц, позволяя пользователям просматривать несколько слайдов и возвращаться туда, откуда они пришли.