Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
792to796
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige