Tag Archives: Ribbon

Ich will nicht sagen, dass mein Nacken zu viel Sonne abbekommen hat, aber hinter mir bleiben Menschen stehen und warten auf Grün.

Lieber Rene, Du hast mir vor einiger Zeit mit einem Tipp zu Snagit geholfen. Jetzt habe ich eine Frage, die evtl. blöd erscheint..aber ic bekomme es nicht hin. Vielleicht hättest Du 2 Min. Zeit mir zu helfen?

Unter der Registerkarte Daten habe ich im Menüband auf der rechten Seite einfach zu viel leere von leerer Fläche und gleichzeitig wird sieht man z.B. das Symbol für Blitzvorschau ohne Bezeichnung.

Ich habe Dir einen Screenshot gesendet. Kann man irgendwie diesen leeren Bereich in der Registerkarte Daten loswerden?

Ich wäre Dir wirklich dankbar für einen Tipp

Liebe Grüße Max

Hallo Maximilian,
die Antwort kurz und knapp: NEIN.
Wenn du in die Definition der Symbole reinschaust – dort gibt es nur die Größen small und normal. Wenn ich beispielsweise einen oder zwei small-Symbole verwende, ist noch Platz für eine drittes nach unten. Das hatte ich beispielsweise mal in folgender Gruppe für Programme, die ich für eine Sparkasse gebaut habe:

Die Breite der Symbole richtet sich nach dem Text. Ist er zu lang, werden die Gruppen zusammengefasst. Wenn noch Platz nach rechts übrig ist … Tja – keine Chance. Auf einem anderen Bildschirm wird das dann anders berechnet …

Früher durfte man erst anfangen zu essen, wenn alle am Tisch waren. Heute: wenn alle ein Foto davon gemacht haben.

Hallo Rene,

ich hoffe das du bei diesen sommerlichen Temperaturen einen guten und entspannten Tag hast.

Zurzeit beschäftige ich mich mit der Ribbon-Programmierung in MS-Office. In Word gibt es ein Button Schließen/Alles Schließen, mit der MsoID = „FileCloseOrCloseAll“. Klickt man diesen Button an, wird das aktuelle Dokument geschlossen. Wird beim Anklicken die Umschalttaste gedrückt, werden alle offenen Dokumente geschlossen.

Wie bekomme ich eine solle Funktionalität bei einem benutzerdefinierten Button hin. Ich möchte zwei unterschiedliche Makros aufrufen, je nachdem ob beim Anklicken die Feststelltaste gedrückt oder nicht gedrückt ist.

Hast du eine Idee?

Liebe Grüße und

Salü

Ernst

Hallo Ernst,

ich glaube nicht, dass das geht. Die Steuerellemente haben folgende Ereignisse:

EreignisBeispiel
onAction (button)Sub Prozedur(ByRef Control As IRibbonControl)
onAction (checkBox, toggleButton)Sub Prozedur(ByRef Control As IRibbonControl, ByRef Pressed As Boolean)
onAction (dropDown, galley)Sub Prozedur(ByRef Control As IRibbonControl, ByRef SelectedID As String, ByRef SelectedIndex As Integer)
onChange (editBox, comboBox)Sub Prozedur(ByRef Control As IRibbonControl, ByRef Text As String)

Das heißt: für die Buttons gibt es beim Aufruf einer Prozedur kein Parameter, der eine weitere Taste abfangen kann.

Auch bei den Methoden:

MethodeBeschreibung
ExecuteMsoFührt das vom idMso-Parameter angegebene Steuerelement aus.
GetEnabledMsoGibt True zurück, wenn das vom idMso-Parameter angegebene Steuerelement aktiviert ist.
GetImageMsoGibt ein IPictureDisp-Objekt des vom idMso-Parameter angegebenen Steuerelementbilds zurück, wobei die Abmessung von Height und Width angegeben wird.
GetLabelMsoGibt die Beschriftung des vom idMso-Parameter angegebenen Steuerelements als Wert vom Typ String zurück.
GetPressedMsoGibt einen Wert zurück, der angibt, ob das vom idMso-Parameter angegebene Umschaltflächen-Steuerelement gedrückt wird.
GetScreentipMsoGibt die QuickInfo des vom idMso-Parameter angegebenen Steuerelements als Wert vom Typ String zurück.
GetSupertipMsoGibt eine MultiInfo zum vom idMso-Parameter angegebenen Steuerelement als Wert vom Typ String zurück.
GetVisibleMsoGibt True zurück, wenn das vom idMso-Parameter angegebene Steuerelement sichtbar ist.

Kann man mit GetPressedMso nur bei Toggle-Buttons prüfen, ober ein- oder ausgeschaltet wurde, aber nicht wie gedrückt wurde.

Ich kann diese Frage mal nächste Woche auf meinem Blog veröffentlichen – vielleicht weiß jemand eine Antwort …

Liebe Grüße

Rene

Hallo Rene.

Nach deinen Ausführungen bin ich auf die Idee gekommen folgendes in WORD auszuprobieren.

Bei zwei geöffneten Dokumenten habe ich im Direktbereich des VBA-Editors den Befehl

CommandBars.ExecuteMso(„FileCloseOrCloseAll“)

einzugeben und danach nur die Enter-Taste gedrückt.

Es wird die Schließen-Routine aufgerufen.

Wird allerdings die Shift- und die Enter-Taste gleichzeitig gedrückt, wird die AllesSchließen-Routine aufgerufen.

Daraufhin habe ich folgendes versucht:

Ich habe in ein Word-Dokument mit Hilfe des Office RibbonX Editor diese Sequenz eingefügt.

und im VBA-Bereich des gleichen Dokumentes folgendes.

Option Explicit

'API zum feststellen des Keyboard-Status deklarieren.
#If VBA7 Then
    Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
 #Else
    Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#End If

Sub OnActionButton(control As IRibbonControl)
    Select Case control.ID
        Case "SaveAsDocxOrPdf":          SpeicherAlsDocxOderPdf  'Neuer Umbruch
        Case Else
        MsgBox "Fehler in OnAction: '" & control.ID & "' nicht erkannt"
    End Select
End Sub

Sub SpeicherAlsDocxOderPdf()
    If Abs(GetKeyState(&H10) < 0) Then      'Abfrage ob Shifttaste gedrückt ist
        CommandBars.ExecuteMso ("FileSaveAsPdfOrXps")
       Else
        CommandBars.ExecuteMso ("FileSaveAsWordDocx")
    End If
End Sub

Und es klappt. Wird das benutzerdefinierte Icon „Als DOCX oder PDF speichern“ angeklickt,  erscheint das Formular „Speichern als Dokument ohne Makros“. Wird während des Anklicken des Icon die Shift-Taste gedrückt, erscheint das Formular „Als PDF oder XPS veröffentlichen“.

Salü

Ernst

Das ist sehr, sehr clever! DARAUF wäre ich nie gekommen.

LG Rene

Der Straßenbelag: hart aber Teer.

Amüsant.

Ich öffne eine Testdatei, die mir ein Anwender zugeschickt hat, und wundere mich, wo das Menüband (das Ribbon) ist.

Dann fällt es mir ein: es gab da doch … Richtig:

Es gab einen Excel 4.0-Makrobefehl, mit dem man die Symbolleiste ausblenden konnte. Dieser funktioniert im aktuellen Excel noch immer und blendet hier das Menüband aus. Der Befehl lautet:

Application.ExecuteExcel4Macro "Show.Toolbar(""Ribbon"", False)"

Und: nicht vergessen: Nach Beendigung bitte wieder einschalten!

Männer sind alle gleich. Sie sehen nur unterschiedlich aus, damit man sie unterscheiden kann.

Hallo Herr Martin

Es kommt wieder mal eine Frage aus der Schweiz.

Für den damaligen Kunden hatte ich mit Ihren Angaben und Ihrem Buch eine eigene Registerkarte für die Vorlage erstellt. Das hat super funktioniert. Nun gibt es noch Ergänzungen einiger zusätzlicher Schaltflächen. Nur bockt diesmal etwas.

Mein Vorgehen:

  • Entpacken der xltm.
  • Ich ergänze die customui.xml
  • Zippen aller Daten, umbenennen zu xltm .

Ergebnis: Datei kann nicht mehr geöffnet werden. Ich habe gefühlt alles genau gleich gemacht wie beim ersten Mal. Haben Sie dazu eine Idee?

Besten Dank für einen Tipp dazu 🙂

Freundliche Grüsse – Kind regards

Hallo Herr S.,

es könnte möglicherweise am Zippen liegen.

Achten Sie darauf, dass Sie „auf der richtigen Ebene“ sind und ALLE Ordner und die XML-Datei markiert haben, also HIER:

(wahrscheinlich haben Sie mehr Ordner)

Versuchen Sie es noch einmal, bitte!

schöne Grüße aus München

Rene Martin

Bei meiner Beerdigung sollen Helene Fischer und Andreas Gabalier singen. Ich kann es eh nicht hören – und die anderen sollen leiden!

Hallo Herr Dr. Martin,

ich habe mich nach längerer Pause mal wieder ans Ribbon Design gewagt.

Leider sagt mir Excel jedes Mal nach dem Zippen und wieder in .xlsm umbenennen, die Datei sei beschädigt. Das passiert auch wenn ich keine Änderungen am entzippten Ordner vornehme (sowohl am Arbeitsrechner als auch am privaten Rechner)

Haben Sie vielleicht nochmal einen Tipp? Ich scheine irgendwas falsch zu machen…

Liebe Grüße und vielen Dank

NF.

Hallo Herr Fritz,

mit Sicherheit haben Sie einen Fehler in der XML-Ribbon-Datei. Verwenden Sie einen guten XML-Editor? Er muss validierend sein.

Ich verwenden Visual Studio – gibt es auch als kostenlose Version. Dort ist die Schema-Datei für das MSO integriert.

Schöne Grüße Rene Martin

 

Binden und Tampons bleiben wohl trotz Steuersenkung gleich teuer. Die Konten der Hersteller sind jetzt noch saugfähiger.

Hallo,

ich habe ein Tool gebaut wo ich im Namensmanager auf die Funktion Bereich.Verschieben nutze, um das Diagramm dynamisch zu gestallten.

Nun möchte Ich die Mappe vor neugierigen Blicken schützen. Über Blatt- und Arbeitsmappeschützen klappt das auch ausreichend, allerdings ist der Namensmanager komplett einsehbar.

Haben Sie eine Idee, wir ich den Namensmanager verbergen kann?

Ich freue mich von Ihnen zu hören.

Viele Grüße,

Hallo Herr W.,

das Ausblenden funktioniert. Leider nicht das Symbol, aber die Gruppe „Definierte Namen“. Haben Sie die Excel-Datei schon einmal entzippt und nachgeschaut?

In der Datei „.rels“ im Ordner _rels muss ein Verweis auf die Datei stehen:

<Relationship Id=“rID4″ Type=“http://schemas.microsoft.com/office/2006/relationships/ui/extensibility“ Target=“ribbon/ribbon.xml“/>

In der Datei ribbon.xml wird die Gruppe ausgeblendet:

<ribbon startFromScratch=“false“>

    <tabs>

      <tab idMso=“TabFormulas“>

        <group idMso=“GroupNamedCells“ visible=“false“>

        </group>

      </tab>

    </tabs>

  </ribbon>

Kommen Sie damit klar?

Schöne Grüße

Rene Martin

PS: Der Anwender kann den Namensmanager immer noch über [Strg] + [F3] öffnen. Das könnte man mit VBA wegprogrammieren. Dann könnte er immer noch ein Symbol in die Symbolleiste für den Schnellzugriff legen …

Ich habe mir eine zweite Schneeschaufel gekauft. Ich paarschippe jetzt.

Habt ihr schon einmal Ribbon selbst mit einer XML-Datei erstellt. Ein validierender XML-Editor ist wichtig (wer Visual Studio hat, ist gut beraten).

Man fragt sich, welcher Praktikant den Befehl checkBox und nicht Checkbox (auch nicht CheckBox) genannt hat. Buttons habe das Attribut size mit den Werten „large“ und „normal“. Hum!

Hier könnte ein einfühlsames Zitat stehen. Tut es aber nicht.

Hilfe! Da war ein Witzbold an meinem Rechner! Mein Excel sieht ganz kaputt aus? Was hat er gemacht? Und: wie bekomme ich es wieder normal?

Die Antwort: Der Witzbold hat Registerkarten ausgeblendet, vertauscht; in den Registern Gruppen vertauscht und ausgeblendet. Aber Sie können den Urzustand wiederherstellen, indem Sie in den Optionen / Menüband anpassen das Ganze mit Zurücksetzen / Alle Anpassungen zurücksetzen:

Ist Besonnenheit vom Wetter abhängig?

Nö, besonnen kann ich nicht bleiben. Plötzlich darf ich keine Symbole mehr in mein Ribbon einfügen. Was ist da los?

Rien ne va plus

Rien ne va plus

Die Antwort finden Sie, wenn Sie einen Blick ins Ribbon werfen:

20170126Ribbon02

Die Excel-Registerkarten wurden ausgeblendet. Wahrscheinlich im XML-Code. In einer „normalen“ Excel-Datei dürfen Sie natürlich wieder Symbole einfügen. So viele wie Sie möchten.

Mein Menüband ist weg

Das Ribbon / Menüband / die Mulitfunktionsleiste ist weg?

Das Menüband ist weg!

Das Menüband ist weg!

Nun, das kann leicht passieren: Mit einem Doppelklick auf eine der Registerkarten wird das Menüband zusammengeklappt. In Excel 2013 steht in ein Symbol am rechten, oberen Rand zur Verfügung, mit dem man es wieder einklappen kann:

Menüband einklappen

Menüband einklappen

In Excel 2007 musste man es per Doppelklick auf einen der Reiter wieder herholen:

Mit einem Doppelklick kann man das Menüband ein- und wieder ausklappen.

Mit einem Doppelklick kann man das Menüband ein- und wieder ausklappen.