Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1864to1868
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

xlMaximized

xlMaximized
21.01.2022 10:41:04
Wägi
Hallo Forum
Ich habe mir ein Userform, mit einer Breite von 800 erstellt. Um zu kontrollieren ob diese auch bei einer Bildschirmauflösung von 800x600 ganz sichtbar ist, stellte ich unter Windows die Bildschirmauflösung auf VGA 800x600.
Das Formular sollte unter VGA eigentlich voll sichtbar sein.
Leider ist dies aber nicht so.

Private Sub UserForm_Initialize()
Application.WindowState = xlMaximized
MsgBox (Application.Height & " x " & Application.Width)
Die

MsgBox (Application.Width & " x " & Application.Height)
liefert mir unter VGA Werte von 612x462 statt 800x600.
Entsprechen die Grössen-Einstellungen im Formular nicht den Pixeln?
Kann man eine VGA-Auflösung anders testen?
Ich freue mit auf eine Antwort.
Herzlichen Dank im voraus.
Wägi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: xlMaximized
21.01.2022 10:58:51
Rudi
Hallo,

Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Sub aaa()
MsgBox GetSystemMetrics(0) & "x" & GetSystemMetrics(1)
End Sub
Gruß
Rudi
AW: xlMaximized
21.01.2022 11:26:37
volti
Und zur Sicherheit bei neuerem Office ggf. das Schlüsselwort PtrSafe verwenden.
Das gilt für 32- und 64-Bit-Office:
Code:

[Cc]

Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long Sub aaa() MsgBox GetSystemMetrics(0) & "x" & GetSystemMetrics(1) End Sub

_________________________
viele Grüße 😊
Karl-Heinz

Anzeige
AW: xlMaximized
21.01.2022 13:35:51
Rolf
Danke für die Antworten.
Da ich die 64Bit-Version installiert habe, funktioniert der Code von Rudi mit der Ergänzung "PtrSafe" von Karl-Heinz.
Die MsgBox liefert nun ganz interessante Infos: bei der normalen Einstellung von meinem Bildschirm 3840x1600, stimmt die gemeldete Auflösung. Stelle ich Windows auf 800x600 ein, meldet nun die Box 1000x750.
Stelle ich die Formularbreite mit dem Wert von GetSystemMetrics(0) ein, (3840 Pixel), ist das Formular in Echt viel grösser, bei meinem rund 87cm breiten Bildschirm kann ich dann das Formular noch um rund 56cm nach links verschieben bis das Ende kommt. Dies bei einer Bildschirmauflösung vom 3840 Pixel und einer Skalierung von 100%. Das soll noch einer verstehen?
Grüsse
Wägi
Anzeige
AW: xlMaximized
21.01.2022 14:18:53
Rudi
Hallo,
versuch's mal mit
Breite= GetSystemMetrics(0)/1.33
Höhe= GetSystemMetrics(1)/1.378
Gruß
Rudi
AW: xlMaximized
21.01.2022 21:56:24
Rolf
Hallo Rudi
Danke für die Idee mit dem Teilen.
Ich lasse es jetzt aber so, dass das Formular standardmässig eine Breite von 800 hat. Dann sollte es unter VGA theoretisch funktionieren, falls überhaupt noch jemand mit so einer Auflösung arbeitet.
Wenn die Bildschirmbreite über 1000 ist, abgefragt mit Application.WindowState = xlMaximized, erhält das Formular eine Breite von 920. So kann der Anwender mit Hilfe von einem Zoom-Button das Formular etwas vergrössern. Mit dieser Variante verstehe ich auch den Code.
Mit GetSystemMetrics(0) und Co, blicke ich einfach nicht durch.
Ich danke dir, dass du mir probiert hast zu helfen.
Wägi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige