VBA Userform Maximieren und Bildschirmtastatur Öffnen
Schritt-für-Schritt-Anleitung
Um eine VBA Userform in Excel so zu maximieren, dass sie den gesamten Bildschirm ausfüllt, kannst Du folgenden Code verwenden:
Private Sub UserForm_Activate()
With Me
.Left = 0
.Top = 0
.Width = Application.Width
.Height = Application.Height
End With
End Sub
Um die Bildschirmtastatur zu öffnen, wenn Du auf ein Textfeld klickst, füge diesen Code in das entsprechende Textfeld-Click-Event ein:
Private Sub txtDeinTextfeld_Click()
LoadScreenKeyboard
End Sub
Denke daran, die Funktion LoadScreenKeyboard
wie folgt zu definieren:
Public Sub LoadScreenKeyboard()
Shell "osk.exe", vbNormalFocus
End Sub
Häufige Fehler und Lösungen
-
Variable nicht definiert: Wenn Du in Deinem Click-Event auf Cancel
zugreifst und eine Fehlermeldung bekommst, liegt das daran, dass das Click-Event kein Cancel
-Parameter hat. Entferne die Zeile:
Cancel = True
-
Userform nicht richtig maximiert: Wenn die Userform beim Maximieren nicht richtig dargestellt wird, überprüfe, ob Du den Code in das UserForm_Activate
-Event eingefügt hast.
-
Tastatur öffnet sich nicht: Stelle sicher, dass der Code zum Öffnen der Tastatur im richtigen Event platziert ist. Das funktioniert nur, wenn das Event tatsächlich ausgelöst wird.
Alternative Methoden
Falls Du eine andere Methode zur Maximierung der Userform ausprobieren möchtest, kannst Du die Bildschirmgröße über API-Funktionen abfragen:
Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Sub UserForm_Activate()
Me.Width = GetSystemMetrics(0) ' SM_CXSCREEN
Me.Height = GetSystemMetrics(1) ' SM_CYSCREEN
End Sub
Praktische Beispiele
Hier ist ein Beispiel, das Du in Dein Userform einfügen kannst:
Private Sub UserForm_Activate()
Me.Left = 0
Me.Top = 0
Me.Width = GetSystemMetrics(0)
Me.Height = GetSystemMetrics(1)
End Sub
Private Sub txtDeinTextfeld_Click()
LoadScreenKeyboard
End Sub
Public Sub LoadScreenKeyboard()
Shell "osk.exe", vbNormalFocus
End Sub
Mit diesem Code wird die Userform beim Aktivieren maximiert, und die Bildschirmtastatur öffnet sich, wenn das Textfeld angeklickt wird.
Tipps für Profis
- Nutze
Option Explicit
in Deinem Modul, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden und den Code übersichtlicher zu gestalten.
- Überlege, die Touch-Tastatur von Surface zu verwenden, falls Du einen Surface-PC nutzt. Dies erfordert jedoch eine spezifische Implementierung und kann von Gerät zu Gerät variieren.
FAQ: Häufige Fragen
1. Wie kann ich die Größe der Bildschirmtastatur ändern?
Leider gibt es keine einfache Möglichkeit, die Größe der Bildschirmtastatur zu ändern, da dies durch das Betriebssystem festgelegt wird.
2. Warum funktioniert der Cancel
-Parameter nicht?
Der Cancel
-Parameter funktioniert nicht im Click-Event, da er nicht Teil der Parameterliste ist. Entferne einfach die Zeile, die Cancel
verwendet, um den Fehler zu beheben.