Screen size

J

Jim

Hello (again, my first attempt at this post went astray I guess)


Is there a way in VB (excel) to determine the screen size/resolution so
that I can reposition my userforms to look right when run on different
screens/computers. Some of the people that have to use this spreadsheet
have smaller screens and some have a "portrait" and others with
"landscape" orientation of the monitors.

Thanks

Jim
 
T

Tom Ogilvy

http://support.microsoft.com/?id=148395
ACC: How to Determine the Current Screen Resolution (95/97)


'*****************************************************************
' DECLARATIONS SECTION
'*****************************************************************
Option Explicit
Type RECT
x1 As Long
y1 As Long
x2 As Long
y2 As Long
End Type
' NOTE: The following declare statements are case sensitive.
Declare Function GetDesktopWindow Lib "User32" () As Long
Declare Function GetWindowRect Lib "User32" _
(ByVal hWnd As Long, rectangle As RECT) As Long
'*****************************************************************
' FUNCTION: GetScreenResolution() ' ' PURPOSE:
' To determine the current screen size or resolution. '
' RETURN:
' The current screen resolution. Typically one of the following:
' 640 x 480 ' 800 x 600 ' 1024 x 768 '
'*****************************************************************
Function GetScreenResolution() As String
Dim R As RECT
Dim hWnd As Long
Dim RetVal As Long
hWnd = GetDesktopWindow()
RetVal = GetWindowRect(hWnd, R)
GetScreenResolution = (R.x2 - R.x1) & "x" & (R.y2 - R.y1)
End Function


============== Another version =================
Posted by Laurent Longre, Programming 06/10/99

Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _
ByVal hdc As Long) As Long

Sub Test()
Dim DC As Long
DC = GetDC(0)
MsgBox "Resolution : " & GetDeviceCaps(DC, 8) _
& " * " & GetDeviceCaps(DC, 10) & " pixels"
ReleaseDC 0, DC
End Sub
==================

Option Explicit

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

Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1

Public Function GSR() As String
GSR = CStr(GetSystemMetrics(SM_CXSCREEN)) _
& "x" & CStr(GetSystemMetrics _
(SM_CYSCREEN))
End Function
===================
 

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