ich habe eine Userform an eine bestimmte Position gesetzt. Heisst Left und Top sind fix. Wie kann ich es jetzt noch hinbiegen, das die Userform mit der Mous nicht verschoben werden kann?
MfG
Holger Wächter
Private Sub UserForm_Initialize()
If Val(Application.Version) >= 9 Then
hWndForm = FindWindow("ThunderDFrame", Me.Caption)
Else
hWndForm = FindWindow("ThunderXFrame", Me.Caption)
End If
bCaption = False
SetUserFormStyle
End Sub
Um eine UserForm in Excel zu fixieren, sodass sie nicht verschoben werden kann, kannst du die Titelleiste der UserForm ausblenden. Dies geschieht durch den Einsatz von Windows API-Funktionen. Hier ist eine Schritt-für-Schritt-Anleitung:
Öffne den Visual Basic for Applications (VBA) Editor in Excel.
Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "Module" klickst und "Einfügen" > "Modul" auswählst.
Kopiere den folgenden Code in das Modul:
Option Explicit
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal _
lpWindowName As String) As Long
Declare Function GetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex _
As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex _
As Long, ByVal dwNewLong As Long) As Long
Declare Function DrawMenuBar Lib "user32" (ByVal _
hwnd As Long) As Long
Const GWL_STYLE As Long = -16
Const WS_CAPTION As Long = &H800000
Public hWndForm As Long
Public bCaption As Boolean
Sub SetUserFormStyle()
Dim frmStyle As Long
If hWndForm = 0 Then Exit Sub
frmStyle = GetWindowLong(hWndForm, GWL_STYLE)
If bCaption Then
frmStyle = frmStyle Or WS_CAPTION
Else
frmStyle = frmStyle And Not WS_CAPTION
End If
SetWindowLong hWndForm, GWL_STYLE, frmStyle
DrawMenuBar hWndForm
End Sub
Füge nun den folgenden Code in das UserForm-Modul ein:
Private Sub UserForm_Initialize()
If Val(Application.Version) >= 9 Then
hWndForm = FindWindow("ThunderDFrame", Me.Caption)
Else
hWndForm = FindWindow("ThunderXFrame", Me.Caption)
End If
bCaption = False
SetUserFormStyle
End Sub
Schließe den VBA-Editor und teste deine UserForm. Die Titelleiste sollte nun verschwunden sein, und die UserForm kann nicht mehr verschoben werden.
Fehler: Die UserForm wird nicht korrekt angezeigt.
Fehler: Die UserForm kann zwar nicht verschoben werden, aber das Layout sieht nicht gut aus.
Eine einfachere Möglichkeit, um eine UserForm in Excel zu fixieren, besteht darin, die Größe der UserForm so zu ändern, dass sie den gesamten Bildschirm ausfüllt. Setze die Eigenschaften wie folgt:
Diese Methode sorgt dafür, dass die UserForm den gesamten Bildschirm ausfüllt und somit nicht mehr verschoben werden kann.
Hier ist ein Beispiel, wie du eine UserForm fixieren kannst:
1. Kann ich die UserForm trotzdem schließen, wenn die Titelleiste entfernt wurde?
Ja, du kannst einen Schließen-Button in die UserForm einfügen, um die UserForm zu schließen.
2. Funktioniert dies in allen Excel-Versionen?
Die beschriebenen Methoden funktionieren in den meisten neueren Excel-Versionen, insbesondere in Excel ab Version 2000. Achte darauf, dass du den richtigen Code für deine Excel-Version verwendest.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen