Search code examples
vbavstopowerpointresolutionmultiple-monitors

In a dual-monitor system, finding out on which monitor a PowerPoint slideshow is displayed


In Powerpoint 2007/2010 run on a multiple monitor system, we can select the monitor on which the slideshow will be shown by going to "Slide Show"-> "Set up slideShow" -> "Display SlideShow on" and selecting the desired monitor.

Is it possible to programmatically determine these settings (e.g. using VBA)?

What I actually need is the pixel-resolution of the monitor on which the slideshow is shown. How can I do that?


Solution

  • Try this:

    With SlideShowWindows(1)
    Debug.Print .Height
    Debug.Print .Width
    End With
    

    That'll give you results in points. There are 72 points to the inch, so:

    ResultInPixels = (ResultInPoints * WindowsDPI) / 72

    Typically WindowsDPI is 96 but you can't rely on that. API calls to GetSystemMetrics will give you the current value.