Search code examples
vbapowerpoint

Call subroutine when a specific slide loads, or on a timer


I'm working with a PowerPoint 2003 presentation for a kiosk display, and it is left running pretty much 24/7. One slide on it has the weather, the current date, and the 7 day forecast.

I've already written the subs that will update the weather from an Excel workbook, and update the dates displayed, but right now I have to manually update it when I come in. Is there a way that I can have a subroutine (e.g. UpdateSlide()) called when the slideshow reaches that particular slide? It seems like there is no official way to do this, I'm assuming for security reasons, but what about a timed event, such that it would call it say, every six hours?


Solution

  • Use the built-in OnSlideShowPageChange event:

    Public Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow)
       If Wn.View.CurrentShowPosition = 3 Then
           'Perform Updates for slide #3
       EndIf
    End Sub
    

    Edit: As kcoppock pointed out, you can put this code in any module.