HERBERS Excel-Forum - die Beispiele

Thema: Kopfleiste einer UserForm ein- und ausblenden

Home

Gruppe

API

Problem

Die Titelleiste einer UserForm soll ausgeblendet werden, damit diese nicht verschoben werden kann.

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.
ClassModule: frmCaption

Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
                ByVal lpClassName As String, _
                ByVal lpWindowName As String) As Long

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
              (ByVal hWnd As Long, ByVal nIndex As Long) As Long
                
Private Declare Function SetWindowLong _
               Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, _
               ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Declare Function DrawMenuBar Lib "user32" ( _
               ByVal hWnd As Long) As Long

Private Sub cmdCancel_Click()
  Unload Me
End Sub

Private Sub cmdOn_Click()
  Call fncHasUserformCaption(True)
End Sub

Private Sub cmdOff_Click()
   Call fncHasUserformCaption(False)
End Sub

Private Sub UserForm_Initialize()
  Call fncHasUserformCaption(False)
End Sub

Private Function fncHasUserformCaption(bState As Boolean)
  Dim Userform_hWnd As Long
  Dim Userform_Style As Long
  Dim Userform_Rect As RECT
  Const GWL_STYLE = (-16)
  Const WS_CAPTION = &HC00000
  Userform_hWnd = FindWindow( _
     lpClassName:=IIf(Val(Application.Version) > 8, _
     "ThunderDFrame", "ThunderXFrame"), _
     lpWindowName:=Me.Caption)
  Userform_Style = GetWindowLong(hWnd:=Userform_hWnd, _
     nIndex:=GWL_STYLE)
  If bState = True Then
     Userform_Style = Userform_Style Or WS_CAPTION
  Else
     Userform_Style = Userform_Style And Not WS_CAPTION
  End If
  Call SetWindowLong(hWnd:=Userform_hWnd, nIndex:=GWL_STYLE, _
     dwNewLong:=Userform_Style)
  Call DrawMenuBar(hWnd:=Userform_hWnd)
End Function

StandardModule: Modul1

Sub DialogAufruf()
   frmCaption.Show
End Sub

Beiträge aus dem Excel-Forum zu den Themen API und Dialog

Excel to Word Kapitel VBA Anfangskapital berechnen
Gestapelte Säulen-Diagramm: Ich kapier's nicht Googel Maps API in Excel VBA einfügen
xlDialogInsertHyperlink.show Arbeitmappen über Dialogfeld zusammen fassen
5.0 Dialog Speichern unter Dialog in Word aufrufen inkl. Pfad
Druckerdialog Dateityp im "Speichern unter"-Dialog vorgeben
Makro stoppen, wenn Excel-Dialog? xlDialogOpen anpassen
Klick in definierten Rangebereich startet Dialog Berechnung vom Endkapital
xlDialogOpen bei Excel 2007 funzt nicht FileDialog inkl. Anklicken von Desktop, Eigene D.
Grösse Dialogfenster der InputBox API? - xl-Parameter aus Long-Wert bestimmen
Berechnung Kapitalanlage Telefonnummer auslesen per TAPI
Dialogfeld unterdrücken Dialog "permanently delete sheets" unterbinden
Format-Dialog funktioniert nicht mehr Dialog "Verknüpfung aktualisieren"
Ordnerdialog und Dateidialog Ordnerdialog und dateidialog
Läuft RSAPI.DLL mit WIN2000 und XP? Ordnerdialog und Dateidialog
Filedialog Herber/Beispiele/Dialoge/Checkbox/137601
JAVA API mit VBA verwenden Bilder bei Click im Dialogfeld
Suchdialog über VBA aufrufen mit Wert aus Combobox Dialog öffnen
Diagramm als Grafik mit Speicherdialog exportieren Dialogfenster zum kopieren
FileDialog-Objekt unter O2k Abrage von Dialogfeldargumenten
Datei Auswählen Dialog (Application.FileDialog) xlDialogOpen/FindFile ohne Open
Dialogfeld zum pdf öffnen Dialogfeld schließen, wenn Benutzer nichts eingibt
Problem mit ApplicationDialogs Das Dialogfeld "sortieren" aufrufen?
Keine Dialogbox bei SaveAs Dialogbox
Bei xlDialogSaveAs Dateinamen vorgeben Blattauswahldialog...
speichern unter dialogbox problem Speicherndialog bei BeforeClose unterbinden