¿Hay algún tipo de evento que permita ejecutar una macro cada vez que ingresa una diapositiva o deja una diapositiva?¿Cómo ejecutar una macro "OnEnterSlide" o "OnLeaveSlide" en Powerpoint VBA?
Respuesta
SlideShowNextSlide o OnSlideShowPageChange
Usted puede encontrar la lista completa en http://officeone.mvps.org/vba/events_version.html
Ejemplo de código de http://msdn.microsoft.com/en-us/library/aa211571%28office.11%29.aspx
En este ejemplo se determina la posición de la corredera de la corredera después del evento SlideShowNextSlide.
Si la diapositiva siguiente es la diapositiva tres, el ejemplo cambia el tipo de puntero a un bolígrafo y el color del bolígrafo a rojo.
Private Sub App_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
Dim Showpos As Integer
Showpos = Wn.View.CurrentShowPosition + 1
If Showpos = 3 Then
With ActivePresentation.SlideShowSettings.Run.View
.PointerColor.RGB = RGB(255, 0, 0)
.PointerType = ppSlideShowPointerPen
End With
Else
With ActivePresentation.SlideShowSettings.Run.View
.PointerColor.RGB = RGB(0, 0, 0)
.PointerType = ppSlideShowPointerArrow
End With
End If
End Sub
Me gustaría agregar que el evento a usar realmente depende de la versión de PowerPoint. Para mí (PP 2007) el próximo evento funciona bastante estable:
Sub OnSlideShowPageChange(ByVal objWindow As SlideShowWindow)
Debug.Print objWindow.View.Slide.SlideIndex ' you can use this to check which slide invokes the event
End Sub
Este código no necesita estructuras de clase adicionales (PPTEvent). Pero si planea usar otros eventos, es una buena idea colocar la inicialización de esta clase en OnSlideShowPageChange.
Tenga en cuenta que este código hace frente a la primera parte de la tarea asignada: ingresar la diapositiva. Puede preguntar "¿Qué hay de su partida?". Bueno, esta es una cuestión de relatividad. Lo que es ingresando para una diapositiva es al mismo tiempo dejando para otra. Simplemente use objWindow.View.Slide.SlideIndex para rastrear la diapositiva actual, compárela con el índice de la diapositiva anterior y decida si acaba de abandonar la que necesita.
- 1. Powerpoint VBA App_SlideShowBegin
- 2. Excel VBA - Ejecutar macro antes de guardar
- 3. EXcel VBA: Macro de Excel para crear una tabla en PowerPoint
- 4. ¿Cómo configurar una prueba unitaria en VBA Excel Macro?
- 5. Diapositivas de ramificación en PowerPoint (VBA)
- 6. VBA Powerpoint. ¿Cómo obtener la ruta del directorio actual del archivo a una cadena en VBA?
- 7. ¿Hay un futuro para PowerPoint VBA/VSTO?
- 8. ¿Cómo aplicar un diseño particular en powerpoint usando vba?
- 9. Extraer comentarios de una presentación de PowerPoint con VBA
- 10. ¿Qué tutorial recomendarías para estudiar PowerPoint VBA?
- 11. ¿Cómo generar XML desde una macro de Excel VBA?
- 12. Abrir/activar documentos de Word en una macro de VBA
- 13. Uso del símbolo # (hash) en VBA Macro
- 14. Deshacer de edificio en una macro de Excel de VBA
- 15. Incrustar un proceso R en una macro de VBA
- 16. macro de VBA en Excel para ejecutar la declaración Insertar SQL
- 17. ¿Cómo hacer una macro que se ejecuta periódicamente en Excel?
- 18. Ejecutar una macro en todos los buffers en vim
- 19. Cómo bucle de filas con macro de Excel VBA?
- 20. ¿Cómo asigno un atajo de teclado a una macro de VBA en Outlook 2007?
- 21. Notepad ++ utilizando el comando "Ejecutar" en una macro
- 22. Ejecutar código vba externo en MS Word
- 23. VBA: MSXML2.DOMDocument cambiado a MSXML2.DOMDocument40 en macro
- 24. ¿Macro o equivalente en reStructuredText?
- 25. ¿Cómo actualizar los gráficos incrustados de Excel en PowerPoint?
- 26. Renombrar objetos en PowerPoint
- 27. Macro de Word, que almacena la selección actual (VBA)
- 28. VBA Macro se bloquea después de 32000 filas
- 29. ¿Cómo avanzar automáticamente una diapositiva de PowerPoint después de que termine una animación de salida?
- 30. VB/VBA StrComp o =
Eso es solo para ingresar. No sé si hay un evento al "salir" –
Intento activarlo ejecutando este http://stackoverflow.com/questions/2979950/how-to-automatically-trigger-the-app-object-initialization -en-powerpoint en la ventana de ejecución, pero parece que no funciona. ¿He lastimado algo? – user310291
Respondida en la otra pregunta –