wie kann ich die bildschirmgröße automatisch anpassen.
für antworten bin ich sehr dankbar.
gruß
ralf
Private Sub UserForm_Initialize()
'Userform wird auf die Größe von Excel gezoomt, wobei die
'die Controls entsprechend gezoomt und zentriert werden.
'Uwe Küstner 20070622
Dim Faktor As Single
Dim X As Single, Y As Single
Dim sngL As Single, sngO As Single, sngR As Single, sngU As Single
Dim oC As MSForms.Control
Faktor = Application.Height / (Me.Height - 20)
If Faktor 4 Then Faktor = 4
Me.Width = Application.Width
Me.Height = Application.Height
sngL = Me.Width
sngO = Me.Height
For Each oC In Me.Controls
sngL = Application.WorksheetFunction.Min(sngL, oC.Left)
sngO = Application.WorksheetFunction.Min(sngO, oC.Top)
sngR = Application.WorksheetFunction.Max(sngR, oC.Left + oC.Width)
sngU = Application.WorksheetFunction.Max(sngU, oC.Top + oC.Height)
Next oC
X = (Me.Width - (sngR * Faktor) - (sngL * Faktor)) / 2 / Faktor
Y = (Me.Height - (sngO * Faktor) - (sngU * Faktor) - 20) / 2 / Faktor
Me.Controls.Move X, Y
Me.Zoom = Faktor * 100
End Sub
Gruß Gerd
Um die Größe einer Userform in Excel VBA automatisch an die Bildschirmauflösung anzupassen, folge diesen Schritten:
ALT + F11, um den VBA-Editor zu starten.Private Sub UserForm_Initialize()
'Userform wird auf die Größe von Excel gezoomt, wobei die
'die Controls entsprechend gezoomt und zentriert werden.
Dim Faktor As Single
Dim X As Single, Y As Single
Dim sngL As Single, sngO As Single, sngR As Single, sngU As Single
Dim oC As MSForms.Control
Faktor = Application.Height / (Me.Height - 20)
If Faktor > 4 Then Faktor = 4
Me.Width = Application.Width
Me.Height = Application.Height
sngL = Me.Width
sngO = Me.Height
For Each oC In Me.Controls
sngL = Application.WorksheetFunction.Min(sngL, oC.Left)
sngO = Application.WorksheetFunction.Min(sngO, oC.Top)
sngR = Application.WorksheetFunction.Max(sngR, oC.Left + oC.Width)
sngU = Application.WorksheetFunction.Max(sngU, oC.Top + oC.Height)
Next oC
X = (Me.Width - (sngR * Faktor) - (sngL * Faktor)) / 2 / Faktor
Y = (Me.Height - (sngO * Faktor) - (sngU * Faktor) - 20) / 2 / Faktor
Me.Controls.Move X, Y
Me.Zoom = Faktor * 100
End Sub
Fehler: Userform wird nicht vollständig angezeigt.
Fehler: Userform bleibt in der ursprünglichen Größe.
UserForm_Initialize()-Ereignis platziert ist. Andernfalls wird der Code nicht ausgeführt, wenn die Userform geöffnet wird.Wenn du die Größe der Userform nicht über VBA anpassen möchtest, kannst du auch die Bildschirmauflösung ändern. Dazu gibt es einige Tastenkombinationen:
Windows + I öffnet die Einstellungen, wo du die Bildschirmauflösung anpassen kannst.Hier ist ein einfaches Beispiel, wie du den Code anpassen kannst, um die Userform für verschiedene Bildschirmgrößen zu optimieren:
Private Sub UserForm_Initialize()
' Setze die Userform-Größe basierend auf verschiedenen Bildschirmauflösungen
If Application.Width < 1024 Then
Me.Width = 800
Me.Height = 600
Else
Me.Width = Application.Width
Me.Height = Application.Height
End If
End Sub
Mit dieser Anpassung wird die Userform kleiner, wenn die Bildschirmauflösung unter 1024 Pixel liegt.
Application.ScreenWidth und Application.ScreenHeight Eigenschaften, um dynamisch die Größe der Userform zu ermitteln.1. Wie kann ich die Userform-Größe automatisch anpassen?
Du kannst den oben angegebenen VBA-Code verwenden, um die Größe der Userform automatisch an die Bildschirmauflösung anzupassen.
2. Wo füge ich den VBA-Code ein?
Der Code sollte im Codefenster der Userform im VBA-Editor eingefügt werden. Doppelklicke einfach auf die Userform, um das Codefenster zu öffnen.
3. Welche Bildschirmauflösungen unterstützen die Anpassung?
Die Anpassung funktioniert mit jeder Bildschirmauflösung, solange der Code korrekt implementiert ist. Teste die Userform auf unterschiedlichen Auflösungen, um die Benutzererfahrung zu optimieren.