Office: (Office 2007) Bei UserForm Rahmen entfernen

Helfe beim Thema Bei UserForm Rahmen entfernen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi leute, Ich hab ma wieder ne frage, ist es möglich bei einer Userform den titel und den unschönen rahmen zu entfernen so das nur das eigentliche... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von KOschi, 25. Januar 2009.

  1. Bei UserForm Rahmen entfernen


    Hi leute,

    Ich hab ma wieder ne frage, ist es möglich bei einer Userform den titel und
    den unschönen rahmen zu entfernen so das nur das eigentliche userform angezeigt wird?

    wenn ja würde mich natürlich interessieren wie.

    Mfg

    :)
     
  2. Hallo,

    den Titel entfernst du im UserForm_Initialize Ereignis mit Me.Caption = ""

    Was du mit dem 'unschönen rahmen ' meinst, weiß ich allerdings nicht.

    Gruß Peter
     
  3. OfficeUser Neuer User
    Hallo Koschi,

    mit reinen Excel-Bordmitteln ist das nicht möglich, aber per Windows API-Programmierung.
    Folgende Lösung erhielt ich vor einigen Jahren von Nepumuk (alias Max K.) :

    Option Explicit
    Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As StringAs Long

    Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" ( _
        ByVal hWnd As Long, _
        ByVal nIndex As LongAs Long

    Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
        ByVal hWnd As Long, _
        ByVal nIndex As Long, _
        ByVal dwNewLong As LongAs Long

    Private Declare Function DrawMenuBar Lib "user32.dll" ( _
        ByVal hWnd As LongAs Long

    Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
        ByVal hWnd As Long, _
        ByVal wMsg As Long, _
        ByVal wParam As Long, _
        ByRef lParam As Any) As Long

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


    Private Const GC_CLASSNAMEMSEXCELFORM = "ThunderDFrame"

    Private Const GWL_STYLE = -16

    Private Const WS_CAPTION = &HC00000

    Private Const HTCAPTION = 2

    Private Const WM_NCLBUTTONDOWN = &HA1


    Private hWndForm As Long


    Private Sub CommandButton1_Click()

    End

    End Sub


    Private Sub UserForm_Activate()
        hWndForm = FindWindow(GC_CLASSNAMEMSEXCELFORM, Me.Caption)
        If hWndForm <> 0 Then
            SetWindowLong hWndForm, GWL_STYLE, GetWindowLong(hWndForm, GWL_STYLE ) And Not WS_CAPTION
            DrawMenuBar hWndForm
        End If

    End Sub


    Private Sub UserForm_MouseDown(ByVal Button As Integer, _
        ByVal Shift As IntegerByVal X As SingleByVal Y As Single)
        If Button = 1 Then
            ReleaseCapture
            SendMessage hWndForm, WM_NCLBUTTONDOWN, HTCAPTION, 0&
        End If
    End Sub
    Code eingefügt mit Syntaxhighlighter 4.15
    Der Code gehört komplett in das Klassenmodul des Tabellenblattes.
    Leider kann ich Dir nicht mehr zum Thema API sagen, da ich davon auch so gut wie keine Ahnung habe *rolleyes.gif*

    Die Verwendung des Codes erfolgt freilich auf eigenes Risiko !
     
    OfficeUser, 27. Januar 2009
    #3
  4. Bei UserForm Rahmen entfernen

    Hallo Peter,

    ich habe das so verstanden, dass das UserForm nur eine Fläche, jedoch ohne Aussenrahmen und ohne Titelleiste besitzen soll (ähnlich wie das in einem Access-Formular formatierbar ist).

    Siehe Screenshot (das Beispiel wurde mit dem o.g. Code erstellt!) :
     
  5. Hallo!

    @ NoNet
    Du meinst doch sicher?: Gehört komplett in den Codebereich der Userform.

    Gruß, René
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
  6. Hallo René,

    habe ich das tatsächlich geschrieben *boah ? - Tatsächlich *tongue.gif* - das ist wohl die "Macht der Gewohnheit" (fast schon getippt ohne Nachzudenken *wink.gif* )

    Du hast natürlich absolut Recht ! - Danke für's Aufpassen und Korrigieren !
     
  7. Hallo,

    wenn du den äußeren Rahmen auch noch weg haben willst, dann musst du das Userform ein bisschen beschneiden. Beispiel:

    ' **********************************************************************
    ' Modul: UserForm1 Typ: Userform
    ' **********************************************************************

    Option Explicit

    Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" ( _
    ByVal hWnd As Long, _
    ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
    ByVal hWnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
    Private Declare Function DrawMenuBar Lib "user32.dll" ( _
    ByVal hWnd As Long) As Long
    Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
    ByVal hWnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    lParam As Any) As Long
    Private Declare Function ReleaseCapture Lib "user32.dll" () As Long
    Private Declare Function SetWindowRgn Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    ByVal hRgn As Long, _
    ByVal bRedraw As Boolean) As Long
    Private Declare Function ScreenToClient Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    lpPoint As POINTAPI) As Long
    Private Declare Function GetWindowRect Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    ByRef lpRect As RECT) As Long
    Private Declare Function CreateRectRgnIndirect Lib "gdi32.dll" ( _
    ByRef lpRect As RECT) As Long

    Private Type POINTAPI
    X As Long
    Y As Long
    End Type

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

    Private Const GWL_STYLE = -16
    Private Const WS_CAPTION = &HC00000
    Private Const HTCAPTION = 2
    Private Const WM_NCLBUTTONDOWN = &HA1
    Private Const GC_CLASSNAMEMSFORM = "ThunderDFrame"

    Private hWndForm As Long

    Private Sub CommandButton1_Click()
    Unload Me
    End Sub

    Private Sub UserForm_Activate()
    Dim udtRect As RECT, udtPoint As POINTAPI
    hWndForm = FindWindow(GC_CLASSNAMEMSFORM, Me.Caption)
    Call SetWindowLong(hWndForm, GWL_STYLE, GetWindowLong( _
    hWndForm, GWL_STYLE) And Not WS_CAPTION)
    Call DrawMenuBar(hWndForm)
    Call GetWindowRect(hWndForm, udtRect)
    udtPoint.X = udtRect.Right
    udtPoint.Y = udtRect.Bottom
    Call ScreenToClient(hWndForm, udtPoint)
    With udtRect
    .Bottom = udtPoint.Y
    .Left = 4
    .Right = udtPoint.X
    .Top = 4
    End With
    Call SetWindowRgn(hWndForm, CreateRectRgnIndirect(udtRect), True)
    End Sub

    Private Sub UserForm_MouseDown(ByVal Button As Integer, _
    ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    If Button = 1 Then
    Call ReleaseCapture
    Call SendMessage(hWndForm, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End If
    End Sub
     
    Nepumuk, 28. Januar 2009
    #7
Thema:

Bei UserForm Rahmen entfernen

Die Seite wird geladen...
  1. Bei UserForm Rahmen entfernen - Similar Threads - UserForm Rahmen entfernen

  2. einfache suche via userform wie im browser

    in Microsoft Word Hilfe
    einfache suche via userform wie im browser: Seid gegrüßt! Da der 'Suchen und Ersetzen' Dialog sehr viel Platz wegnimmt, und von mir häufig genutzte Optionen tief versteckt sind, versuche ich eine kleine Userform mit diesen Optionen zu...
  3. Monats Kalender über Userform

    in Microsoft Excel Hilfe
    Monats Kalender über Userform: Ich habe über das Userform einen Monatskalender mit zwei Buttons links und rechts erstellt, um die Monate vor- und zurückzublättern. Außerdem soll der Monat im Format „Januar 2025“ angezeigt...
  4. Userform unterdrücken - wenn Datei von andere Datei geöffnet wird

    in Microsoft Excel Hilfe
    Userform unterdrücken - wenn Datei von andere Datei geöffnet wird: Hallo, ich habe einer Excel-Datei X ein Userform vorgeschaltet, d.h. wenn die Datei X geöffnet wird, wird das Userform geöffnet und der Anwender zur Eingabe von paar Daten aufgefordert....
  5. UserForm in Office 2019 für MacOS fehlt

    in Microsoft Excel Hilfe
    UserForm in Office 2019 für MacOS fehlt: Hallo, ich wollte nach Hardwarewechsel auf Macbook im Office 2019 für MacOS eine UserForm erstellen und bin überrascht das ich keine Möglichkeit dazu finde, die Auswahlmöglichkeit im...
  6. Userform Login Benutzername in Zelle schreiben

    in Microsoft Excel Hilfe
    Userform Login Benutzername in Zelle schreiben: Hallo mal wieder ins Forum, ich habe mir nach einem Video ein Login nachgebaut. Das funktioniert auch einwandfrei. Hier der Code: Private Sub bttnAnmelden_MouseDown(ByVal Button As Integer, ByVal...
  7. Grafischer Rahmen in UserForm

    in Microsoft Excel Hilfe
    Grafischer Rahmen in UserForm: Hallo liebe Experten, ich stehe vo einem Problem. In einem UserForm habe ich drei Frames, die Textboxen, Checkboxen und Comboboxen beinhalten. In meiner Unkenntnis bin ich anfänglich davon...
  8. Userform: Picture einer Image wird nur im Rahmen geladen/aufgerischt (LoadPicture)

    in Microsoft Excel Hilfe
    Userform: Picture einer Image wird nur im Rahmen geladen/aufgerischt (LoadPicture): Hi, ich habe folgendes Problem, fast schon ein RÄTSEL. Ich habe 1 Combobox (2 Einträge) die das Bild (Picture) eines Image steuert. Beim Klick auf das Image wird eine 2. Userform angezeigt die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden