Als Antwort auf diesen Beitrag
Hi
um die Größe einer Userform im laufenden Betrieb zu ändern, brauchst du kein API.
das geht auch über die normalen Events (MouseUp, -Down, -Move)
hier mal ein Beispielcode, wie du die Fläche einer Userform per Maus verändern kannst.
zum Verändern der Größe musst du den rechten oder unteren Rand anklicken und das Fenster auf die Größe ziehen:
den sensitiven Bereich stellst du in den IFs im MouseDown ein.
Option Explicit
Dim checkX As Boolean
Dim CheckY As Boolean
Dim x0 As Single
Dim y0 As Single
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 Then
If X > Me.Width - 30 Then
checkX = True
x0 = Me.Width - X
End If
If Y > Me.Height - 50 Then
CheckY = True
y0 = Me.Height - Y
End If
End If
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If checkX Then Me.Width = X + x0
If CheckY Then Me.Height = Y + y0
End Sub
Private Sub UserForm_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
checkX = False
CheckY = False
End Sub
zum Mini- und Maximieren würde ich auch einfache Commandbuttons verwenden, deren Makros dann die Width- und Height-Werte der Userform entsprechend einstellen.
Wichtig ist nur, dass du diese oben links in der Userform platzierst und beim Minimieren die Userform noch mindestens so groß lässt, dass zumindest der Maximieren-Button noch sichtbar ist.
ja, das sieht nicht so schön aus wie ein richtiges Fenster mit den Buttons in der Titelzeile, aber es funktioniert und kann von jedem Anfänger programmiert werden.
Gruß Daniel