Bildschirmskalierung auslesen in Excel mit VBA
Schritt-für-Schritt-Anleitung
-
VBA-Editor öffnen: Drücke ALT + F11
, um den VBA-Editor in Excel zu öffnen.
-
Ein neues Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (deine Datei)" und wähle Einfügen > Modul
.
-
Code einfügen: Kopiere und füge den folgenden Code in das Modul ein, um die Bildschirmauflösung auszulesen:
Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Const SM_CXSCREEN As Long = 0
Const SM_CYSCREEN As Long = 1
Sub BildschirmauflösungHerausfinden()
MsgBox "Breite: " & GetSystemMetrics(SM_CXSCREEN) & vbCrLf & _
"Höhe: " & GetSystemMetrics(SM_CYSCREEN)
End Sub
-
Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros
aus, um die Bildschirmauflösung zu sehen.
Häufige Fehler und Lösungen
-
Fehlermeldung bei 32-Bit- und 64-Bit-Version: Stelle sicher, dass Du den PtrSafe
-Schlüsselwort in der Deklaration verwendest, wenn Du auf einem 64-Bit-System arbeitest, wie im obigen Beispiel gezeigt.
-
ActiveWindow.Zoom funktioniert nicht: Wenn Du versuchst, den Windows-Zoom abzufragen, verwende stattdessen den Code zur Abfrage der Bildschirmauflösung. Der ActiveWindow.Zoom
bezieht sich nur auf den Excel-Zoom.
Alternative Methoden
Wenn Du die Bildschirmauflösung nicht über VBA auslesen möchtest, kannst Du auch:
- Windows-Einstellungen prüfen: Gehe zu
Einstellungen > System > Anzeige
, um die aktuelle Bildschirmauflösung und den Zoomfaktor manuell zu überprüfen.
- Monitorauflösung herausfinden: Nutze Tools wie
dxdiag
(Drücke Windows + R
und gebe dxdiag
ein), um Details über Deine Monitorauflösung zu erhalten.
Praktische Beispiele
Hier sind einige Beispiele, wie Du die Bildschirmauflösung zur Anpassung von Comboboxen verwenden kannst:
Sub AnpassungCombobox()
With Worksheets(1).ComboBox1
If GetSystemMetrics(SM_CXSCREEN) >= 1920 Then
.Left = 100
.Width = 300
Else
.Left = 50
.Width = 200
End If
End With
End Sub
In diesem Beispiel wird die Position und Größe der Combobox basierend auf der Bildschirmbreite angepasst.
Tipps für Profis
-
Bildschirm Skalierung Windows 10: Berücksichtige, dass bei der Verwendung von verschiedenen Bildschirmauflösungen die Größe der Formulare und Steuerelemente angepasst werden muss. Teste Deine VBA-Lösungen auf mehreren Geräten.
-
DPI-Skalierung: Achte darauf, dass die DPI-Skalierung in Windows 10 die Größe von Steuerelementen beeinträchtigen kann. Eine umfassende Lösung könnte die Implementierung von DPI-aware Programmen beinhalten.
FAQ: Häufige Fragen
1. Wie kann ich die Bildschirmauflösung herausfinden?
Du kannst dies einfach mit dem oben genannten VBA-Code tun, der Dir die Breite und Höhe des Bildschirms anzeigt.
2. Funktioniert dieser Code auch auf 32-Bit-Systemen?
Ja, der Code ist für 64-Bit-Systeme optimiert, funktioniert aber auch auf 32-Bit-Systemen ohne Anpassungen.
3. Warum ist der Windows-Zoom nicht gleich dem Excel-Zoom?
Der Windows-Zoom bezieht sich auf die gesamte Anzeige, während der Excel-Zoom nur die Ansicht innerhalb von Excel beeinflusst. Um die Positionierung von Steuerelementen korrekt anzupassen, musst Du den Windows-Zoom manuell abfragen.