Microsoft Excel

Herbers Excel/VBA-Archiv

Titelleiste

Betrifft: Titelleiste von: Rolf H.
Geschrieben am: 29.10.2012 12:08:53

Hallo zusammen,
diese Frage habe ich schon mal ins Forum gestellt, aber leider keine klare Antwort erhalten.
Vielleicht habe ich diesmal mehr Glück!
Ist es möglich die Titeleiste auszublenden?
So wie man eine UserForm auch ohne Titelleiste darstellen kann.
Bei früheren Excelversionen verschwand mit "Ganzer Bildschirm" auch die Titelleiste - bei Excel 2010 leider nicht.
Auch für ein "das geht nicht!" wäre ich dankbar.
Gruß
Rolf

  

Betrifft: AW: Titelleiste von: Luschi
Geschrieben am: 29.10.2012 13:26:04

Hallo Rolf,

mit ein bischen API funktioniert das schon, siehe: http://www.vbarchiv.net/tipps/tipp_846-fenster-ohne-titelzeile.html

Hier der angepaßte Vba-Code:

Option Explicit

' benötigte API-Deklarationen
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 Const GWL_STYLE = (-16)
Private Const WS_CAPTION = &HC00000

' Fensterstil ändern
Dim nStyle As Long
 
Sub FensterLeiste_weg()
    With Application
      ' aktuellen Fensterstil emitteln
      nStyle = GetWindowLong(.hwnd, GWL_STYLE)
     
      ' Titelleiste entfernen
      nStyle = nStyle And Not WS_CAPTION
     
      ' Neuen Fensterstil setzen
      SetWindowLong .hwnd, GWL_STYLE, nStyle
      .DisplayFullScreen = True
    End With
End Sub

Sub FensterLeiste_da()
    With Application
      ' aktuellen Fensterstil emitteln
      nStyle = GetWindowLong(.hwnd, GWL_STYLE)
     
      ' Titelleiste entfernen
      nStyle = nStyle And WS_CAPTION
     
      ' Neuen Fensterstil setzen
      SetWindowLong .hwnd, GWL_STYLE, nStyle
      .DisplayFullScreen = False
    End With
    
End Sub
Gruß von Luschi
aus klein-Paris

PS: Den gesamten Vba-Code in ein eigenständiges Modul kopieren und eine der beiden Prozeduren aufrufen.


  

Betrifft: AW: Titelleiste von: Rolf H.
Geschrieben am: 29.10.2012 14:19:23

Hallo Luschi,
genau das suche ich seit ca 2 Jahren.
Herzlichen Dank
Rolf


  

Betrifft: AW: Titelleiste von: Rolf H.
Geschrieben am: 29.10.2012 15:00:10

Nachtrag

Hallo Luschi,
beim Wiederherstellen der Titelleiste sind bei mir "Strich - Quadrat - Kreuz" für Excel (nicht für die geöffnete Datei) verschwunden.
Mache ich da was falsch?
Gruß
Rolf


  

Betrifft: AW: Titelleiste von: Luschi
Geschrieben am: 29.10.2012 15:07:00

Hallo Rolf,

Du spuckt uns Excel 2010 wieder mal in die Suppe. Eigentlich sollte die API-Funktion die Titelile ausblenden, ohne daß man den den 'Ganzen Bildschirm' aktivieren muß - tut es aber nicht.
Ich schaue mal heute Abend, wie man die Dinger wieder zum Vorschein bringt.

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Titelleiste von: Rolf H.
Geschrieben am: 30.10.2012 08:57:05

Hallo Luschi,
vielleicht ist der Eingriff nicht elegant, aber funktioniert.
Jetzt ist alles wieder da!
Nochmals danke und Gruß
Rolf

Sub FensterLeiste_weg()
       With Application
         ' aktuellen Fensterstil emitteln
         nStyle = GetWindowLong(.hwnd, GWL_STYLE)
         [A1]=nstyle
         ' Titelleiste entfernen
         nStyle = nStyle And Not WS_CAPTION
        
         ' Neuen Fensterstil setzen
         SetWindowLong .hwnd, GWL_STYLE, nStyle
         .DisplayFullScreen = True
       End With
   End Sub


Sub FensterLeiste_da()
       With Application
         ' aktuellen Fensterstil emitteln
         nStyle = GetWindowLong(.hwnd, GWL_STYLE)
         ' Titelleiste entfernen
         nStyle = [A1]
        
         ' Neuen Fensterstil setzen
         SetWindowLong .hwnd, GWL_STYLE, nStyle
         .DisplayFullScreen = False
       End With



  

Betrifft: AW: Titelleiste von: Luschi
Geschrieben am: 30.10.2012 11:32:54

Hallo Rolf,

oder so (ohne [A1])

   Sub FensterLeiste_weg()
       With Application
         ' aktuellen Fensterstil emitteln
         nStyle = GetWindowLong(.hwnd, GWL_STYLE)
        
         ' Titelleiste entfernen
         nStyle = nStyle And Not WS_CAPTION
         ' Neuen Fensterstil setzen
         SetWindowLong .hwnd, GWL_STYLE, (nStyle And Not WS_CAPTION)
         .DisplayFullScreen = True
       End With
   End Sub
   
   Sub FensterLeiste_da()
       Dim hSysMenu As Long, nCnt As Long
   
       With Application
         ' aktuellen Fensterstil emitteln
         nStyle = GetWindowLong(.hwnd, GWL_STYLE)
        
         ' Neuen Fensterstil setzen
         SetWindowLong .hwnd, GWL_STYLE, nStyle
         .DisplayFullScreen = False
       End With
       
   End Sub
Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Titelleiste von: Rolf H.
Geschrieben am: 30.10.2012 17:20:49

Hallo Luschi,
funktioniert bei mir nicht - immer noch kein Kreuz usw.
Sollten
hSysMenu und nCnt nicht mal in der Prozedur vorkommen?

Gruß
Rolf