Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

UserForm unter Berücksichtigung der Auflösung maximieren

Gruppe

UserForm

Problem

Eine UserForm soll nach Auslesen der Bildschirmauflösung maximiert werden.

Lösung
Den nachfolgenden Code in die benannten Module einfügen.

StandardModule: basMain

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

Const HORZRES = 8
Const VERTRES = 10

Function ScreenResolution()
   Dim lRval As Long
   Dim lDc As Long
   Dim lHSize As Long
   Dim lVSize As Long
   lDc = GetDC(0&)
   lHSize = GetDeviceCaps(lDc, HORZRES)
   lVSize = GetDeviceCaps(lDc, VERTRES)
   lRval = ReleaseDC(0, lDc)
   ScreenResolution = lHSize & "x" & lVSize
End Function

Sub CallForm()
   frmFullSize.Show
End Sub

ClassModule: frmFullSize

Private Sub CommandButton1_Click()
   Unload Me
End Sub

Private Sub UserForm_Initialize()
   Dim sSize As String
   sSize = ScreenResolution
   With Me
      .Width = Left(sSize, InStr(sSize, "x") - 1)
      .Height = Right(sSize, Len(sSize) - _
         InStr(sSize, "x"))
      .Left = 0
      .Top = 0
   End With
End Sub