2010-06-05 18 views

Respuesta

6

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 
+0

Eso es solo para ingresar. No sé si hay un evento al "salir" –

+0

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

+0

Respondida en la otra pregunta –

-2

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.

Cuestiones relacionadas