2010-06-05 15 views

Odpowiedz

6

SlideShowNextSlide lub OnSlideShowPageChange

można znaleźć pełną listę w http://officeone.mvps.org/vba/events_version.html

przykładowy kod z http://msdn.microsoft.com/en-us/library/aa211571%28office.11%29.aspx


Przykład ten określa położenie suwaka na szkiełku następujące zdarzenia SlideShowNextSlide.

Jeśli następny slajd ma trzy slajdy, przykład zmienia kolor wskaźnika na czerwony, a kolor pióra na .

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

To tylko w celu wejścia. Nie wiem, czy jest jakieś wydarzenie związane z "pozostawieniem". –

+0

Próbuję go uruchomić, wykonując tę ​​http://stackoverflow.com/questions/2979950/how-to-automatically-trigger-the-app-object-initialization -in-powerpoint w oknie wykonywania, ale nie działa. Zrobiłem coś złego? – user310291

+0

Odpowiedź na drugie pytanie –

-2

Chciałbym dodać, że wydarzenie do korzystania naprawdę zależy od wersji programu PowerPoint. Dla mnie (PP 2007) kolejna impreza działa całkiem stabilny

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 

Kod ten nie potrzebuje dodatkowych struktur klasa (PPTEvent). Ale jeśli planujesz użyć innych zdarzeń, dobrym pomysłem jest zainicjowanie tej klasy w OnSlideShowPageChange.

Pamiętaj, że ten kod radzi sobie z pierwszą częścią zadanego zadania - wprowadzeniem slajdu. Możesz zapytać "A co z jego odejściem?". Cóż, jest to kwestia względności. Co oznacza wprowadzanie dla jednego slajdu w tym samym czasie pozostawiając dla innego. Po prostu użyj objWindow.View.Slide.SlideIndex, aby śledzić bieżący slajd, porównaj go z indeksem poprzedniego slajdu i zdecyduj, czy właśnie go opuściłeś.

Powiązane problemy