Wie kann man mit einem Excel-Makro prüfen, ob das Menüband (Ribbon) mit Application.CommandBars.ExecuteMso 'HideRibbon' ein- oder ausgeblendet ist?

Antwort

In Excel gibt es leider keine direkte VBA-Eigenschaft oder -Methode, um den aktuellen Sichtbarkeitsstatus des Ribbons (Menüband) abzufragen. Das Menüband kann zwar mit `Application.CommandBars.ExecuteMso "HideRibbon"` ein- oder ausgeblendet werden, aber der Status (ein-/ausgeblendet) ist nicht direkt über VBA abfragbar. **Workarounds:** 1. **Versuch, auf die Höhe des Ribbons zuzugreifen:** Man kann versuchen, die Höhe des Fensters vor und nach dem Ausführen des Befehls zu vergleichen. Das ist aber unzuverlässig und funktioniert nicht in allen Excel-Versionen. 2. **Eigene Statusvariable:** Wenn du das Ribbon ausschließlich über dein Makro ein- und ausblendest, kannst du eine eigene Variable (z.B. in einer versteckten Zelle oder als globale Variable) führen, die den Status speichert. Beispiel: ```vba ' Modul-Variable Public RibbonHidden As Boolean Sub ToggleRibbon() Application.CommandBars.ExecuteMso "HideRibbon" RibbonHidden = Not RibbonHidden End Sub ``` 3. **UserForm als Hilfsmittel:** Manche nutzen eine UserForm, um die Größe des Excel-Fensters zu messen, aber das ist sehr umständlich und nicht zuverlässig. **Fazit:** Es gibt **keine offizielle VBA-Möglichkeit**, den Status des Ribbons direkt abzufragen. Die beste Lösung ist, den Status selbst zu verwalten, wenn du das Ribbon per Makro steuerst. **Weitere Infos:** - [Microsoft-Dokumentation zu CommandBars.ExecuteMso](https://learn.microsoft.com/en-us/office/vba/api/office.commandbars.executemso) - [StackOverflow-Diskussion zum Thema](https://stackoverflow.com/questions/24105336/vba-to-check-if-excel-ribbon-is-hidden) **Hinweis:** Wenn das Ribbon manuell vom Benutzer ein- oder ausgeblendet wird (z.B. per Doppelklick), kann dein Makro das nicht erkennen.

Kategorie: Technologie Tags: Excel Makro Ribbon
Neue Frage stellen

Verwandte Fragen

Wie deaktiviere oder aktiviere ich den Blattschutz in Excel per Makro, wenn ein Passwort gesetzt ist?

Um den Blattschutz in Excel per Makro (VBA) zu aktivieren oder zu deaktivieren, wenn ein Passwort gesetzt ist, kannst du folgenden VBA-Code verwenden. Ersetze dabei `"DeinPasswort"` durch da... [mehr]

Warum funktioniert das Excel-Makro mit Dim zeilen as String, Choose und Rows(zeilen).Hidden = True nicht?

Der Fehler liegt daran, dass du die Variable `zeilen` als `String` deklarierst, aber die Funktion `Rows(zeilen).Hidden = True` einen Bereich erwartet, der als Zeilenreferenz interpretiert werden kann.... [mehr]

Wie kann ein Excel-Makro in allen Blättern, auch ausgeblendeten, das Gitternetz ausblenden?

Um in allen Arbeitsblättern einer Excel-Arbeitsmappe – auch in ausgeblendeten – das Gitternetz auszublenden, kannst du folgendes VBA-Makro verwenden: ```vba Sub GitternetzInAllenBlae... [mehr]

Wie kann man mit einem Excel-Makro in allen Blättern Gitternetzlinien und Überschriften ausblenden?

Hier ist ein VBA-Makro, das in allen Arbeitsblättern einer Excel-Arbeitsmappe sowohl die Gitternetzlinien als auch die Überschriften (Zeilen- und Spaltenköpfe) ausblendet: ```vba Sub G... [mehr]

Wie übergibt man zwei Variablen von einem Excel-Makro an ein anderes?

Um zwei Variablen von einem Excel-Makro an ein anderes zu übergeben, gibt es mehrere Möglichkeiten. Die gängigste und sauberste Methode ist, das zweite Makro als **Sub** oder **Function... [mehr]

Gilt Application.ScreenUpdating=false auch für aufgerufene Makros in Excel?

Ja, der Befehl `Application.ScreenUpdating = False` gilt global für die gesamte Excel-Anwendung und damit auch für alle Makros, die danach ausgeführt werden – unabhängig davo... [mehr]

Wie prüfe ich in einem Excel-Makro, ob das aktive Blatt Sheets("Projekt") ist?

Um in einem Excel-Makro (VBA) zu prüfen, ob das aktive Blatt das Blatt mit dem Namen "Projekt" ist, kannst du folgenden Code verwenden: ```vba If ActiveSheet.Name = "Projekt"... [mehr]

Warum tritt Fehler 400 auf, wenn ein Excel-Makro per Button gestartet wird, obwohl es schrittweise mit F8 funktioniert?

Der Fehler 400 in Excel-Makros ist ein allgemeiner Laufzeitfehler, der oft auftritt, wenn etwas im Code nicht wie erwartet funktioniert. Dass der Fehler nur beim Starten über den Button und nicht... [mehr]

Wie speichere ich mit einem Excel-Makro die aktuelle Datei unter einem neuen Namen im gleichen Verzeichnis?

Um die aktuelle Excel-Datei per Makro (VBA) unter einem neuen Namen im gleichen Verzeichnis zu speichern, kannst du folgenden VBA-Code verwenden: ```vba Sub SpeichernUnterNeuemNamen() Dim pfad As... [mehr]

Kann ein Excel-Makro in ausgeblendeten Blättern Zeilen oder Spalten ein- und ausblenden oder Zellen bzw. Bereiche löschen?

Ja, ein Excel-Makro (VBA-Code) kann auch in ausgeblendeten Blättern Zeilen oder Spalten ein- und ausblenden sowie Zellen oder Bereiche löschen. Das Makro kann auf alle Arbeitsblätter zu... [mehr]