Userform anhand der Bildschirmauflösung zoomen
Userforms werden unabhängig von der Bildschirmauflösung immer mit dem selbern Zoomfaktor angezeigt. Das bedeutet, dass Userforms, welche mit einer Bildschirmauflösung von 1600 x 1200 Punkten entwickelt wurden auf einem Computer mit einer Auflösung von 1024 x 768 überdimensional groß erscheinen.
Um dieses Problem zu umgehen, muss abhängig von der gewählten Auflösung die Userform dynamisch gezoomt werden.
Mit folgendem VBA-Code lässt sich dies realisieren.
Erfassen Sie den Code in einem Code-Modul.
'** API-Funktion zum Auslesen der Bildschirmauflösung
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1
Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Sub start_zoom()
'** Dimensionierung der Bariablen
Dim Y_Resol_Std '100 % Standard-Auflösung
Dim Y_Resol 'ausgelesene Auflösung
Dim resol 'umgerechnete Auflösung
'** Zoomfaktor manuell vorgeben
resol = 100
'** Standardgröße festlegen (Höhe 1024 = 100%)
Y_Resol_Std = 1024
'** Auslesen der Y-Resolution
Y_Resol = GetSystemMetrics(SM_CYSCREEN)
'** Prozentuale Umrechnung der ausgelesenen Resolution in Bezug
'** auf die Standard Y-Resolution
resol = Y_Resol * 100 / Y_Resol_Std
'** Zoomen der Userform
frmForm.Zoom = resol
'** Größe der Userform anpassen
frmForm.Width = frmForm.Width * resol / 100
frmForm.Height = frmForm.Height * resol / 100
'** Userform anzeigen
frmForm.TextBox1.Value = resol
frmForm.Show
End Sub
Damit der Code funktioniert, müssen Sie eine UserForm mit der Bezeichnung "frmForm" anlegen, auf der Sie beliebige Steuerelemente zu Testzwecken plazieren können.