Có một số loại sự kiện cho phép chạy macro bất kỳ khi nào một người vào một trang trình bày hoặc rời khỏi trang trình bày không?Làm thế nào để chạy macro "OnEnterSlide" hoặc "OnLeaveSlide" trong Powerpoint VBA?
Trả lời
SlideShowNextSlide hoặc OnSlideShowPageChange
Bạn có thể tìm thấy danh sách đầy đủ tại mẫu Mã http://officeone.mvps.org/vba/events_version.html
từ http://msdn.microsoft.com/en-us/library/aa211571%28office.11%29.aspx
Ví dụ này xác định vị trí trượt cho slide sau sự kiện SlideShowNextSlide.
Nếu trang chiếu kế tiếp trượt ba, ví dụ thay đổi loại con trỏ thành bút và bút màu đỏ.
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
Tôi muốn thêm sự kiện đó để sử dụng thực sự phụ thuộc vào phiên bản PowerPoint. Đối với tôi (PP 2007) sự kiện tiếp theo hoạt động khá ổn định:
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
Mã này không cần cấu trúc lớp bổ sung (PPTEvent). Nhưng nếu bạn dự định sử dụng các sự kiện khác, bạn nên đặt khởi tạo lớp này thành OnSlideShowPageChange.
Xin lưu ý, mã này đối phó với phần đầu tiên của nhiệm vụ được đưa ra - nhập trang trình bày. Bạn có thể hỏi "Còn về việc rời đi?". Vâng, đây là vấn đề tương đối rộng. nhập cho một trang chiếu nào là cùng một lúc để lại cho một trang khác. Chỉ cần sử dụng objWindow.View.Slide.SlideIndex để theo dõi trang trình bày hiện tại, so sánh nó với chỉ mục trang trình bày trước đó và quyết định xem bạn có vừa rời khỏi trang cần thiết hay không.
Đó chỉ là để tham gia. Tôi không biết nếu có sự kiện về "rời khỏi" –
Tôi cố kích hoạt nó bằng cách thực hiện http://stackoverflow.com/questions/2979950/how-to-automatically-trigger-the-app-object-initialization này -in-powerpoint trong cửa sổ thực thi nhưng dường như không hoạt động. Tôi có nghịch ngợm gì đó không? – user310291
Đã trả lời trong câu hỏi khác –