Rubrik: VBA Allgemein | VB-Versionen: VBA | 14.08.03 |
Minimieren/Maximieren einer VBA-UserForm per Code Im Gegensatz zur normalen VB-Form besitzt das VBA-UserForm keine WindowState-Eigenschaft... | ||
Autor: Dieter Otter | Bewertung: | Views: 56.141 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Im Gegensatz zur normalen VB-Form besitzt das VBA-UserForm keine WindowState-Eigenschaft, mit der man die Form per Code minimieren oder auch maximieren kann.
Beispiel für VB:
' Form minimieren Me.WindowState = vbMinimized
' Form maximieren Me.WindowState = vbMaximized
Nachfolgend zeigen wir Ihnen, wie Sie die WindowState-Eigenschaft für eine VBA-UserForm nachrüsten. Erstellen Sie hierzu ein Modul und fügen nachfolgenden Code ein:
Option Explicit ' benötigte API-Deklarationen Private Declare Function GetActiveWindow Lib "user32" () As Long Private Declare Function ShowWindow Lib "user32" ( _ ByVal hWnd As Long, _ ByVal nCmdShow As Long) As Long ' Konstanten Public Const vbNormal = 1 Public Const vbMinimized = 2 Public Const vbMaximized = 3
Die WindowState-Eigenschaft kommt als Property-Prozedur ebenfalls in das Modul:
' Fenster minimieren/maximieren/normal darstellen Public Property Let WindowState(ByVal nState As Long) ShowWindow GetActiveWindow(), nState End Property
Beispiel für den Aufruf:
Platzieren Sie auf die UserForm zwei CommandButtons (cmdMaximize und cmdNormal):
Private Sub cmdMaximize() ' UserForm maximieren WindowState = vbMaximized End Sub
Private Sub cmdNormal() ' UserForm wieder normal darstellen WindowState = vbNormal End Sub
Hinweis:
Obiger Code funktioniert nur, wenn die VBA-UserForm das aktive Fenster ist!