Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

X oben rechts Excel entfernen.

Forumthread: X oben rechts Excel entfernen.

X oben rechts Excel entfernen.
17.08.2006 10:56:39
Holger
Hallo zusammen,
es ist ja möglich bei den Userformen in Excel das X oben rechts zu entfernen, sowie sogar die ganze Kopfzeile. Kann man auch das X oben rechts bei Excel entfernen ?
Und wenn Ja - Wie ?
Gruss
Holger Wächter
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: X oben rechts Excel entfernen.
17.08.2006 11:35:13
Matthias
Hallo Holger,
UF ohne Titelleiste (nicht von mir):
ins Userform-Modul:

Option Explicit
' Userform mit einem CommandButton (CoEnde), um die Userform
' zu schließen. Mit rechtsklick auf die Maus in der Userform
' wird diese ebenfalls geschlossen. Abschnitt:
' "Unload UserForm1 ' Zum schließen, beim ausprobieren."
' von GraFri
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, _
ByVal wCmd As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As _
Long, lpRect As RECT) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, _
ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private FensterRegion&, Region&
Private Hauptfensternummer&, Clientfensternummer&
Private dummy As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Const GW_CHILD = 5
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
Private Sub UserForm_Initialize()
Call FensterOhneKopf
End Sub
Sub FensterOhneKopf()
Dim Abmessung  As RECT
Dim Abmessung1 As RECT
Dim Pos1x&, Pos1y&, Pos2x&, Pos2y&
If FensterRegion <> 0 Then Exit Sub
UserForm1.BorderStyle = fmBorderStyleSingle
Call Fensternummer(UserForm1, Abmessung, Abmessung1)
Pos1x = 0
Pos1y = (Abmessung1.Top - Abmessung.Top)
Pos2x = Abmessung.Right - Abmessung.Left
Pos2y = Abmessung.Bottom - Abmessung.Top
Region = CreateRectRgn(Pos1x, Pos1y, Pos2x, Pos2y)
FensterRegion = SetWindowRgn(Hauptfensternummer, Region, True)
End Sub
'Fensterhandles und Infos über Fenster holen
Private Sub Fensternummer(Form As Object, Abmessung As RECT, Abmessung1 As RECT)
Dim Fenstername$, Suchstring$
Suchstring = "UserForm ohne Titelzeile"
Fenstername = Form.Caption
Form.Caption = Suchstring
Hauptfensternummer = FindWindow(vbNullString, Suchstring)
Form.Caption = Fenstername
Clientfensternummer = GetWindow(Hauptfensternummer, GW_CHILD)
dummy = GetWindowRect(Hauptfensternummer, Abmessung)
dummy = GetWindowRect(Clientfensternummer, Abmessung1)
End Sub
'Folgendes ist notwendig, um die Form ohne Titelleiste zu verschieben
'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 Hauptfensternummer <> 0 Then
'            dummy = ReleaseCapture()
'            dummy = SendMessage(Hauptfensternummer, WM_NCLBUTTONDOWN, HTCAPTION, 0)
'        End If
'    Else
'        Unload UserForm1 ' Zum schließen, beim ausprobieren.
'    End If
'End Sub

Was soll es denn bezwecken, das Schließkreuz der Excel-Anwendung zu verstecken? Du kannst doch das Ereignis in der Mappe abfangen und entsprechend reagieren (BeforeClose).
Gruß Matthias
Anzeige
AW: X oben rechts Excel entfernen.
17.08.2006 11:46:44
Holger
Hi,
wie das mit der Userform ging wusste ich ja schon.
Wollte wissen wie das X oben bei Excel weg geht. Wäre nur eine optische Sache. Das abfangen mache ich ja schon.
Geht das denn überhaupt ?
Gruss
Holger Wächter
AW: X oben rechts Excel entfernen.
17.08.2006 20:14:16
MichaV
Hallo Holger,
http://www.vbarchiv.net/archiv/tipp_details.php?pid=87
Das geht mindestens für das Schliesskreuz auch mit dem XL- Fenster.
Beispiel:

Private Sub Workbook_Open()
Dim hMen As Long
Dim hWnd As Long
hWnd = FindWindow("XLMAIN", vbNullString)
hMen = GetSystemMenu(hWnd, False)
RemoveMenu hMen, SC_CLOSE, MF_BYCOMMAND
End Sub
im allgemeinen Modul*************
Public Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal _
lpWindowName As String) As Long
Public Declare Function GetSystemMenu Lib "user32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Public Declare Function RemoveMenu Lib "user32" _
(ByVal hMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long) As Long
Public Const MF_BYCOMMAND = &H0&
Public Const SC_CLOSE = &HF060
Public Const SC_MAXIMIZE = &HF030
Public Const SC_MINIMIZE = &HF020
Public Const SC_RESTORE = &HF120

Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige