2010-06-05 5 views

risposta

6

SlideShowNextSlide o OnSlideShowPageChange

È possibile trovare l'elenco completo a http://officeone.mvps.org/vba/events_version.html

Esempio di codice da http://msdn.microsoft.com/en-us/library/aa211571%28office.11%29.aspx


Questo esempio determina la posizione della slitta per la diapositiva dopo l'evento SlideShowNextSlide.

Se la diapositiva successiva è la diapositiva tre, l'esempio cambia il tipo di puntatore a una penna e il colore della penna a rosso.

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

Questo è solo per entrare. Non so se c'è un evento in "partenza" –

+0

Provo ad attivarlo eseguendo questo http://stackoverflow.com/questions/2979950/how-to-automatically-trigger-the-app-object-initialization -in-powerpoint nella finestra di esecuzione ma non sembra funzionare. Ho sbagliato qualcosa? – user310291

+0

Risposto nell'altra domanda –

-2

vorrei aggiungere che evento di utilizzare realmente dipende dalla versione di PowerPoint. Per me (PP 2007) il prossimo evento funziona abbastanza stabile:

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 

Questo codice non ha bisogno di strutture di classe supplementari (PPTEvent). Ma se prevedi di utilizzare altri eventi è una buona idea mettere l'inizializzazione di questa classe in OnSlideShowPageChange.

Si prega di notare che questo codice fa fronte alla prima parte dell'attività assegnata - inserendo la diapositiva. Si potrebbe chiedere "E la sua partenza?". Bene, questa è una questione di relatività. Cosa è immettendo per una diapositiva è allo stesso tempo lasciando per un altro. Usa semplicemente objWindow.View.Slide.SlideIndex per tracciare la diapositiva attuale, confrontarla con l'indice della diapositiva precedente e decidere se hai appena lasciato quella desiderata.