Como posso executar uma macro sempre que digito um novo slide?

1

Eu gostaria de ter uma macro simples sempre que eu digitasse um novo slide, se eu chegasse lá pelo click-to-advance normal ou seguindo um link dentro do slideshow. Isso é possível? Eu procurei por algum tipo de objeto "página" ou "slide", sobre o qual eu poderia adicionar uma ação "enter" ou "load", mas se ela existe ainda não a encontrei.

O objetivo é definir um "slide anterior" global var, que é usado para implementar um botão Voltar. Observe que esse botão retorna o usuário ao último slide em que ele estava, não necessariamente ao slide anterior na ordem. Ou seja, no slide # 4 eu clico em um link para o slide 101 no apêndice, depois clico em Voltar e volto para o # 4, não # 100. Isso funciona bem, eu só preciso saber em qual slide eu estava.

Como solução alternativa, estou adicionando um objeto invisível ao slide mestre, com uma ação de passar o mouse para chamar essa macro. Isso deve funcionar, mas parece feio.

Existe uma maneira melhor? Obrigada!

Este é o código que funcionou:

 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

Defino ReturnToPreviousSlide para a ação OnClick do meu botão Voltar e tudo está bem.

Você pode tornar isso um pouco sofisticado com uma pilha de páginas anteriores, permitindo que os usuários façam alguns slides e voltem de onde vieram.

    
por Sathya 29.12.2011 / 18:43

1 resposta

0

Acredito que você esteja procurando o evento SlideShowNextSlide , conforme documentado no link :

Occurs immediately before the transition to the next slide. For the first slide, occurs immediately after the SlideShowBegin event.

Um exemplo está incluído no link do MSDN.

Por link ("Executar macro do VBA em um determinado slide"), há também um OnSlideShowPageChange evento, embora eu não tenha conseguido encontrar nenhuma documentação oficial para isso no MDSN. No entanto, por link :

Occurs after showing the new slide.

This is an auto-macro and does not require any object to be declared. It is fired even when the presentation that hosts these event handlers is not in slide show mode.

    
por 29.12.2011 / 18:58