Die Bildschirmgröße in Excel VBA kann bei der Entwicklung von Makros und Programmen ein wichtiger Parameter sein, insbesondere wenn Sie die Benutzeroberfläche an unterschiedliche Bildschirmauflösungen und -proportionen anpassen möchten. In diesem Artikel betrachten wir verschiedene Möglichkeiten, wie Sie die Bildschirmgröße in VBA Excel erhalten und wie Sie sie verwenden können.
Eine der einfachsten Methoden zum Abrufen der Bildschirmgröße in VBA Excel besteht darin, das Application-Objekt und seine Width- und Height-Eigenschaft zu verwenden. Diese Eigenschaften geben die Breite und Höhe des Anwendungsfensters in Pixeln zurück. Beachten Sie jedoch, dass diese Werte möglicherweise nicht verfügbar sind, wenn sich die Anwendung im Vollbildmodus befindet oder minimiert wird.
Eine andere Möglichkeit, die Bildschirmgröße in VBA Excel zu erhalten, besteht darin, das Screen-Objekt und seine Eigenschaften WorkingAreaWidth und WorkingAreaHeight zu verwenden. Diese Eigenschaften geben die Größe des Aufgabenfensters (Arbeitsbereich) in Pixeln zurück, wobei die Taskleiste und andere Elemente des Betriebssystems ausgeschlossen sind. Dies kann besonders nützlich sein, wenn Sie eine Benutzeroberfläche entwerfen, um den verfügbaren Platz für die Platzierung von Steuerelementen zu berücksichtigen.
Unabhängig davon, wie Sie es erhalten, kann es hilfreich sein, die Bildschirmgröße in VBA Excel zu kennen, wenn Sie ein ansprechendes Design erstellen, Objektpositionen und -größen definieren, optimale Anzeigeoptionen festlegen und vieles mehr. Auf diese Weise können Sie Benutzeroberflächen erstellen, die benutzerfreundlicher und effizienter sind.
Abrufen der Bildschirmgröße in VBA Excel
In der Programmiersprache VBA (Visual Basic for Applications) können Sie die integrierten Funktionen verwenden, um die Bildschirmgröße eines Computers abzurufen. Die Bildschirmgröße kann erforderlich sein, um die optimale Anordnung der Schnittstellenelemente zu bestimmen oder die Anwendung an unterschiedliche Bildschirmauflösungen anzupassen.
Es gibt verschiedene Möglichkeiten, die Bildschirmgröße in VBA Excel zu erhalten:
| Methode | Die Beschreibung |
|---|---|
| Application.Width | Gibt die Breite des Excel-Arbeitsbereichs zurück, die der Bildschirmgröße entspricht. |
| Application.Height | Gibt die Höhe des Excel-Arbeitsbereichs zurück, die der Bildschirmgröße entspricht. |
| Application.Width / Application.Zoom | Gibt die Breite des Bildschirms basierend auf der Skalierung zurück. |
| Application.Height / Application.Zoom | Gibt die Höhe des Bildschirms basierend auf der Skalierung zurück. |
| Application.Width / Application.UsableWidth | Gibt die Breite des verfügbaren Anzeigebereichs ohne Rahmen und Symbolleisten zurück. |
| Application.Height / Application.UsableHeight | Gibt die Höhe des verfügbaren Bereichs des Bildschirms zurück, ohne Rahmen und Symbolleisten zu berücksichtigen. |
Sie können die gewünschte Methode verwenden, um die Bildschirmgröße zu erhalten und das Ergebnis einer Variablen zuzuweisen. Zum Beispiel:
Dim screenWidth As LongDim screenHeight As LongscreenWidth = Application.WidthscreenHeight = Application.Height
Der resultierende Wert kann verwendet werden, um die Größe der Schnittstellenelemente festzulegen oder je nach Bildschirmgröße die erforderlichen Schritte auszuführen.
Verwenden der Bildschirmgröße zum automatischen Zoomen
Dazu können Sie den folgenden Code verwenden:
Sub AutoScale() With ActiveSheet .Cells.Select .Cells.EntireColumn.AutoFit .Cells.EntireRow.AutoFit .Parent.Zoom = FitToWindow(.Parent) End With End Sub Function FitToWindow(workbook As Workbook) As Integer Dim widthRatio As Double Dim heightRatio As Double ' Definieren Sie das Seitenverhältnis des Bildschirms widthRatio = workbook.Parent.Width / Screen.Width heightRatio = workbook.Parent.Height / Screen.Height ' Wählen Sie das kleinste Verhältnis zum Skalieren If widthRatio < heightRatio Then FitToWindow = widthRatio * 100 Else FitToWindow = heightRatio * 100 End If End Function
Dieser Code skaliert den Inhalt des aktiven Arbeitsblatts so, dass er der Größe des Excel-Fensters entspricht. Um das Seitenverhältnis des Bildschirms zu bestimmen, verwenden wir die Eigenschaften für die Breite und Höhe des Excel-Fensters sowie die Eigenschaften für die Breite und Höhe des Bildschirms. Dann wird das kleinste dieser Verhältnisse ausgewählt und der Skalierungswert wird als Prozentsatz festgelegt.
Dieser Ansatz ist ideal zum Erstellen von Benutzeroberflächen, die bei verschiedenen Bildschirmgrößen und Auflösungen gut aussehen. Jedes Mal, wenn Sie das Makro "AutoScale" ausführen, wird der Inhalt automatisch an die Größe des Excel-Fensters angepasst.
Anmerkung: Beachten Sie, dass der Code nur das aktive Arbeitsblatt skaliert. Wenn Sie alle Arbeitsblätter in einer Arbeitsmappe skalieren müssen, können Sie eine zusätzliche Schleife aktivieren, um die Prozedur "AutoScale" auf jedes Arbeitsblatt anzuwenden.
Erstellen einer anpassungsfähigen Oberfläche basierend auf der Bildschirmgröße
Bei der Entwicklung von VBA-Programmen in Excel ist es besonders wichtig, eine adaptive Schnittstelle zu erstellen, die auf verschiedenen Bildschirmgrößen korrekt funktioniert. Die Bildschirmgröße kann erheblich variieren, von kleinen Monitoren auf Laptops bis hin zu großen Displays auf Workstations.
Sie können verschiedene Methoden verwenden, um eine adaptive Schnittstelle zu erstellen. Hier sind einige von ihnen:
- Bestimmen der Bildschirmgröße mithilfe von VBA. Sie können die Application-Funktion in Excel verwenden.Width und Application.Height , um die Breite und Höhe des Bildschirms zu erhalten. Anhand der erhaltenen Daten können Sie die Benutzeroberfläche des Programms anpassen, z. B. die Größe von Fenstern, Schaltflächen oder Steuerelementen ändern.
- Verwenden absoluter oder relativer Koordinaten beim Erstellen von Schnittstellenobjekten. Dazu können Sie die Eigenschaften Top , Left , Width und Height verwenden. Beispielsweise können Sie anstelle einer fest definierten Position eines Objekts relative Koordinaten verwenden oder es am Bildschirmrand ausrichten.
- Verwenden Sie bedingte Anweisungen, um das visuelle Erscheinungsbild der Benutzeroberfläche abhängig von der Bildschirmgröße zu ändern. Sie können beispielsweise die Schriftart, die Größe von Elementen ändern oder sie auf einem kleinen und großen Bildschirm unterschiedlich positionieren.
- Verwenden Sie spezielle Steuerelemente oder Bibliotheken, um eine adaptive Schnittstelle zu erstellen. Einige Steuerelemente und Bibliotheken ermöglichen es Ihnen, die Programmoberfläche automatisch an verschiedene Bildschirmgrößen anzupassen, was den Entwicklungsprozess erheblich vereinfacht.
Die Wahl der Methode hängt von den spezifischen Anforderungen und Möglichkeiten des Projekts sowie von der Erfahrung des Programmierers ab. Denken Sie daran, dass die Entwicklung einer adaptiven Schnittstelle ein wichtiger Teil des Prozesses zur Erstellung von VBA-Programmen ist, der die Benutzerfreundlichkeit verbessert und die Anwendung auf verschiedenen Geräten optimal bedient.
Automatische Größenanpassung von Fenstern beim Ändern des Bildschirms
Bei der Arbeit mit VBA erfordert Excel normalerweise, dass Fenster und Elemente auf dem Bildschirm beim Ändern der Bildschirmgröße automatisch die Größe ändern. Es gibt mehrere Möglichkeiten, dies zu tun.
1. Verwenden eines Ereignisses Workbook_WindowResize.
Dieses Ereignis wird ausgelöst, wenn sich die Größe des Arbeitsmappenfensters ändert. Im Ereignishandler können Sie die gewünschten Aktionen angeben, um die Größe anderer Fenster oder Elemente zu ändern.
Private Sub Workbook_WindowResize(ByVal Wn As Excel.Window)' Ваш код для изменения размера окон и элементовEnd Sub
2. Verwenden eines Objekts Application.
Es gibt ein Ereignis im Application-Objekt WindowResize, die ausgelöst wird, wenn sich die Größe des Excel-Fensters ändert. Im Ereignishandler können Sie Aktionen angeben, um die Größe der gewünschten Fenster oder Elemente zu ändern.
Private Sub Workbook_Open()Application.WindowResize = "ResizeWindows"End SubSub ResizeWindows(ByVal Target As Excel.Window)' Ваш код для изменения размера окон и элементовEnd Sub
3. Verwenden der Funktion GetSystemMetrics.
Verwenden Sie diese Funktion, um Informationen zu den Systemeinstellungen einschließlich der Bildschirmgrößen abzurufen. Sie können diese Funktion verwenden, um die Größe von Fenstern oder Elementen an der aktuellen Bildschirmgröße zu binden.
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As LongSub ResizeWindows()Dim screenWidth As LongDim screenHeight As LongscreenWidth = GetSystemMetrics(0)screenHeight = GetSystemMetrics(1)' Ваш код для изменения размера окон и элементов на основе screenWidth и screenHeightEnd Sub
Mit diesen Methoden können Sie die Größe von Fenstern und Elementen in VBA Excel automatisch so anpassen, dass sie der aktuellen Bildschirmgröße entsprechen.
Verwenden der Bildschirmgröße in bedingten Anweisungen
Die Bildschirmgröße in Excel VBA kann in bedingten Anweisungen verwendet werden, um Entscheidungen basierend auf dem verfügbaren Platz auf dem Bildschirm zu treffen. Beispielsweise können Sie mithilfe der Bildschirmgröße festlegen, wie Daten in einer Tabelle angezeigt werden oder wie Steuerelemente auf einem Formular positioniert werden.
Um die Bildschirmgröße in VBA Excel zu erhalten, können Sie die Application-Eigenschaft verwenden.Width und Application.Height . Diese Eigenschaften geben die Breite und Höhe des Bildschirms in Pixeln zurück.
Ein Beispiel für die Verwendung der Bildschirmgröße in bedingten Anweisungen könnte folgendermaßen aussehen:
| Bedingung | Handlung |
|---|---|
| Application.Width < 1024 | Daten im schmalen Format anzeigen |
| Application.Height < 768 | Steuerelemente kompakt anordnen |
| Application.Width >= 1024 And Application.Height >= 768 | Daten im breiten Format anzeigen |
In diesem Beispiel werden die Daten in einem schmalen Format angezeigt, wenn die Bildschirmbreite kleiner als 1024 Pixel ist. Wenn die Bildschirmhöhe kleiner als 768 Pixel ist, werden die Steuerelemente kompakt angeordnet. Wenn sowohl die Breite als auch die Höhe des Bildschirms größer oder gleich 1024 bzw. 768 Pixel sind, werden die Daten im breiten Format angezeigt.
Die Verwendung der Bildschirmgröße in bedingten Anweisungen ermöglicht es Ihnen, die Benutzeroberfläche der Anwendung an verschiedene Bildschirmgrößen anzupassen, was die Benutzerfreundlichkeit für die Benutzer verbessert.
Ändern der Größe des Arbeitsbereichs je nach Bildschirm
Wenn Sie mit VBA in Excel arbeiten, können Sie die Größe des Arbeitsbereichs möglicherweise abhängig von der Bildschirmgröße des Benutzers ändern. In diesem Artikel werden verschiedene Methoden beschrieben, mit denen Sie die Größe des Excel-Fensters und des Arbeitsbereichs automatisch an die Bildschirmauflösung anpassen können.
Methode 1: Verwenden der Application-Eigenschaft
Sie können die Größe des Arbeitsbereichs mithilfe der Application-Eigenschaft ändern.Width und Application.Height, mit denen Sie die aktuellen Werte für die Breite und Höhe des Excel-Fensters abrufen können.
Sub ChangeWindowSize() Dim screenWidth As Integer Dim screenHeight As Integer screenWidth = Application.Width / Application.Zoom screenHeight = Application.Height / Application.Zoom 'neue Breite und Höhe des Fensters definieren Dim newWidth As Integer Dim newHeight As Integer If screenWidth > 1024 Then 'neue Breite festlegen, wenn der Bildschirm größer als 1024 Pixel ist newWidth = 1024 Else 'neue Breite festlegen, wenn der Bildschirm bereits größer ist newWidth = screenWidth End If If screenHeight > 768 Then 'neue Höhe festlegen, wenn der Bildschirm größer als 768 Pixel ist newHeight = 768 Else 'neue Breite festlegen, wenn der Bildschirm bereits größer ist newWidth = screenWidth End If If screenHeight > 768 Then 'neue Höhe festlegen, wenn der Bildschirm größer als 768 Pixel ist newHeight = 768 Else 'Legen Sie einen neuen Höhenwert fest, wenn der Bildschirm bereits neu ist newHeight = screenHeight End If 'Ändern Sie die Größe des Excel-Fensters und des Anwendungsarbeitsbereichs.Width = newWidth * Application.Zoom Application.Height = newHeight * Application.Zoom End Sub
Methode 2: Verwenden der Screen-Eigenschaften
Eine andere Möglichkeit, die Bildschirmgröße in Excel VBA zu ändern, besteht darin, die Screen-Eigenschaften zu verwenden.Width und Screen.Height. Diese Eigenschaften ermöglichen es Ihnen, die Breite und Höhe des Bildschirms des Benutzers zu erhalten.
Sub ChangeWindowSize() Dim screenWidth As Integer Dim screenHeight As Integer screenWidth = Screen.Width screenHeight = Screen.Newwidth = 1024 Else 'neue Breite festlegen, wenn der Bildschirm größer als 1024 Pixel ist newWidth = 1024 Else 'neue Breite festlegen, wenn der Bildschirm bereits größer ist newWidth = screenWidth End If If screenHeight > 768 Then 'neue Höhe festlegen, wenn der Bildschirm größer als 768 Pixel ist newHeight = 1024 Else 'neue Breite festlegen, wenn der Bildschirm bereits größer ist newWidth = screenWidth End If If screenHeight > 768 Then 'neue Höhe festlegen, wenn der Bildschirm größer als 768 Pixel ist newHeight = 768 Dann 'neue Höhe festlegen, wenn der Bildschirm größer als 768 Pixel ist Newwidth = 768 Else 'Legen Sie einen neuen Höhenwert fest, wenn der Bildschirm bereits neu ist newHeight = screenHeight End If 'Ändern Sie die Größe des Excel-Fensters und des Anwendungsarbeitsbereichs.Width = newWidth * Application.Zoom Application.Height = newHeight * Application.Zoom End Sub
Schlußfolgerung
Das Ändern der Größe des Arbeitsbereichs in Abhängigkeit vom Bildschirm des Benutzers kann beim Entwerfen von VBA-Makros in Excel hilfreich sein. Auf diese Weise können Sie die Benutzeroberfläche für eine bequemere und effizientere Nutzung des Programms anpassen. Mithilfe der obigen Methoden können Sie die Größe des Fensters und des Arbeitsbereichs automatisch an die Bildschirmauflösung anpassen.