Userform ohne Titelleiste

VBA bietet die Möglichkeit unter Verwendung von API-Funktionen die Titelleiste, welche standardmäßig bei jeder Userform angezeigt wird, auszublenden.

 

So sieht die Userform in der VBA-Entwicklungsumgebung aus. Die Titelleiste wird wie gewohnt angezeigt.

 

.

 

Fügen Sie den untenstehenden VBA-Code der Userform hinzu und starten Sie die Userform bspw. über die Funktionstaste F5. Sie sehen, dass die Titelleiste nicht mehr angezeigt wird, siehe folgende Abbildung.

 

 

Wenn die Titelleiste ausgeblendet ist, wird automatisch die Möglichkeit genommen, Userforms über das "X" zu schließen. Der Anwender verwendet damit automatisch die vorgesehenen Buttons wie bspw. OK oder Abbrechen.

 

VBA-Code für Userform:

 

Private Declare Function FindWindow Lib "user32" Alias _
  "FindWindowA" (ByVal lpClassName As StringByVal _
  lpWindowName As StringAs Long

Private Declare Function GetWindowLong Lib "user32" Alias _
  "GetWindowLongA" (ByVal hwnd As LongByVal nIndex _
  As LongAs Long

Private Declare Function SetWindowLong Lib "user32" Alias _
  "SetWindowLongA" (ByVal hwnd As LongByVal nIndex _
  As LongByVal dwNewLong As LongAs Long

Private Declare Function DrawMenuBar Lib "user32" (ByVal _
  hwnd As LongAs Long

Private Declare Function SendMessage Lib "user32" Alias _
  "SendMessageA" (ByVal hwnd As LongByVal wMsg As Long, _
  ByVal wParam As Long, lParam As Any) As Long

Private Declare Function ReleaseCapture Lib "user32" () As Long

Private wHandle As Long

 



Private Sub CommandButton1_Click()
Unload Me
End Sub

 



Private Sub UserForm_Initialize()
If Val(Application.Version) >= 9 Then
  wHandle = FindWindow("ThunderDFrame", Me.Caption)
Else
  wHandle = FindWindow("ThunderXFrame", Me.Caption)
End If

If wHandle = 0 Then Exit Sub

frm = GetWindowLong(wHandle, GWL_STYLE)
frm = frm Or &HC00000

SetWindowLong wHandle, -16, frmStyle

DrawMenuBar wHandle
End Sub

 



Private Sub UserForm_MouseDown(ByVal Button As IntegerByVal _
  Shift As IntegerByVal X As SingleByVal Y As Single)

If wHandle = 0 Then Exit Sub

If Button = 1 Then
  ReleaseCapture
  SendMessage wHandle, &HA1, 2, 0
End If
End Sub

 


 

   

Artikel mit ähnlichen Themen

   

Aktuell sind 23 Gäste und keine Mitglieder online

   
Twitter Account für Excel-InsideExcel-Inside auf FacebookExcel-Inside auf Linked InExcel-Live News blogExcel-Inside RSS-FeedExcel-Inside auf Xing

Excel Auftragsprogrammierung

Access Auftragsprogrammierung
Word Auftragsprogrammierung

Outlook Auftragsprogrammierung

 Maßgeschneiderte
Individuallösungen
  für Ihren Erfolg
   

Sie haben eine Frage ...
... hier geht´s zum Office Forum

Forum Office-Fragen

   
   
   
   

Forum Office-FragenOffice-Fragen.de ist das Forum rund um Microsoft Office, PALO und LibreOffice.
[Excel, Word, Outlook, Access, Visio, Office365, Office mac: u.v.m.]

Wenn Sie Fragen haben, dann können Sie diese jederzeit gerne im Forum stellen. Die anwesenden Moderatoren und ggf.
auch andere Forumsteilnehmer werden Ihre Problemstellung schnellstmöglich bearbeiten.

Möchten Sie Ihr Wissen weitergeben? Dann sind Sie selbstverständlich auch jederzeit herzlich im Forum willkommen.

Jeder registrierte Benutzer erhält das kostenlose E-Book "Die 100 wichtigsten Formeln und Funktionen" für Excel.

Registrieren Sie sich noch heute und sichern Sie sich das kostenlose Willkommensgeschenk.

» zum Forum...

   
Live tracking and statistics