Festlegen der Programmfenstergröße in einem Makro (Microsoft Excel)
Christopher muss innerhalb eines Makros die Größe des Excel-Programmfensters festlegen. Er weiß, wie man die Größe eines Arbeitsblatts im Programmfenster einstellt, aber das braucht er nicht. Er fragt sich, wie er die Gesamtgröße des Programmfensters einstellen kann und ob er es nicht größer als die tatsächliche Bildschirmgröße des Benutzers einstellt.
Dies ist ziemlich einfach, wenn man weiß, welche Objekte und Eigenschaften in Ihrem Makro verwendet werden sollen. Das Objekt, das Sie verwenden möchten, ist das Anwendungsobjekt, das sich auf die Excel-Anwendung bezieht. Hier sind die relevanten Eigenschaften:
Oben. * Das Bildschirmpixel, an dem der obere Rand des Anwendungsfensters platziert werden soll.
Links. * Das Bildschirmpixel, an dem der linke Rand des Anwendungsfensters platziert werden soll.
Breite. * Die Breite des Anwendungsfensters in Pixel.
Höhe. * Die Höhe des Anwendungsfensters in Pixel.
In diesem Sinne können Sie die Position und Größe des Programmfensters folgendermaßen einstellen:
Sub SetWindowSize1() Application.WindowState = xlNormal Application.Top = 25 Application.Left = 25 Application.Width = 300 Application.Height = 200 End Sub
Dieses Makro gibt an, dass die obere linke Ecke des Programmfensters 25 Pixel vom oberen Bildschirmrand und 25 Pixel vom linken Bildschirmrand entfernt ist. Dann wird das Programmfenster auf 300 Pixel Breite und 200 Pixel Höhe eingestellt. Beachten Sie auch die Einstellung der WindowState-Eigenschaft am ersten Ende des Makros. Dies versetzt das Fenster in einen „normalen“ Zustand, dh in einen Zustand, dessen Größe auf etwas größer als minimiert und kleiner als maximiert geändert werden kann. (Wenn das Excel-Programmfenster den gesamten Bildschirm einnehmen soll, setzen Sie einfach die WindowState-Eigenschaft auf xlMaximized und vergessen Sie die restlichen Einstellungen im Makro.)
Natürlich setzt dieses Makro das Excel-Programmfenster ziemlich klein.
Höchstwahrscheinlich möchten Sie, dass es größer ist, aber Sie möchten nicht, dass es größer als der Bildschirm des Benutzers ist. Der einfachste Weg, um die Größe des Benutzerbildschirms herauszufinden, besteht darin, einfach das Excel-Anwendungsfenster zu maximieren und dann die Eigenschaften Breite und Höhe zu betrachten. Sie können diese Zahlen dann an die Stelle anpassen, an der sich die obere linke Ecke des Bildschirms befinden soll, und sie dann entsprechend anpassen.
Angenommen, das Programmfenster soll bei 25, 50 beginnen und 1000 x 500 betragen. Sie können Code verwenden, der dem folgenden ähnelt:
Sub SetWindowSize2() Dim iMaxWidth As Integer Dim iMaxHeight As Integer Dim iStartX As Integer Dim iStartY As Integer Dim iDesiredWidth As Integer Dim iDesiredHeight As Integer iStartX = 50 ' Distance from left iStartY = 25 ' Distance from top iDesiredWidth = 1000 iDesiredHeight = 500 With Application .WindowState = xlMaximized iMaxWidth = Application.Width iMaxHeight = Application.Height ' Adjust for starting point iMaxWidth = iMaxWidth - iStartX iMaxHeight = iMaxHeight - iStartY If iDesiredWidth > iMaxWidth Then iDesiredWidth = iMaxWidth End If If iDesiredHeight > iMaxHeight Then iDesiredHeight = iMaxHeight End If .WindowState = xlNormal .Top = iStartY .Left = iStartX .Width = iDesiredWidth .Height = iDesiredHeight End With End Sub
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (10938) gilt für Microsoft Excel 97, 2000, 2002 und 2003.
Eine Version dieses Tippes für die Multifunktionsleistenoberfläche von Excel (Excel 2007 und höher) finden Sie hier: