determining resolution of current screen display

  • Thread starter Graham Whitehead
  • Start date
G

Graham Whitehead

Hi, I am trying to determine the users screen resolution because the size of
charts etc, are going to be dependant on this. I have some code but for
some reason it returns 800x600 on my monitor when it should be 1280x1024.
Can anyone shed any light on this one?
Here is the code:

Sub screensize()

Dim strSize As String

With Application.DefaultWebOptions
Select Case .screensize
Case msoScreenSize800x600
strSize = "800x600"
Case msoScreenSize1024x768
strSize = "1024x768"
Case msoScreenSize1280x1024
strSize = "1280x1024"
Case Else
strSize = "1280x1024"
End Select
End With

MsgBox strSize

End Sub
 
N

Norman Jones

Hi Graham,

Try something like

'=============>>
Option Explicit

Declare Function GetSystemMetrics32 Lib "user32" _
Alias "GetSystemMetrics" _
(ByVal nIndex As Long) As Long

'--------------->

Function DisplayVideoResolution() As String
DisplayVideoResolution = GetSystemMetrics32(0) & " x " & _
GetSystemMetrics32(1)
End Function

'--------------->

Sub TestIt()
MsgBox DisplayVideoResolution
End Sub
'=============>>
 
N

NickHK

Graham,
It looks like that property only applies to HTML output and is a
"suggestion" of what you should aim for, not what the current resolution
actually is.
So:
Private Declare Function GetSystemMetrics32 Lib "User32" _
Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long

Private Sub CommandButton1_Click()
Dim w As Long, h As Long
w = GetSystemMetrics32(0) ' width in points
h = GetSystemMetrics32(1) ' height in points
MsgBox Format(w, "#,##0") & " x " & Format(h, "#,##0"), _
vbInformation, "Monitor Size (width x height)"
End Sub

NickHK
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top