Ribbons erstellen in Excel 2007

XML-Beschreibung

∅ 5 / 1 Bewertungen

XML-Beschreibung

XML?

XML ist die Abkürzung für eXtensible Markup Language (engl., erweiterbare Auszeichnungs-Sprache), eine Sonderform dessen, was Sie überall im Internet als HTML (Hypertext Markup Language) sehen. Die Sprache enthält die Befehle zwar auch in spitzen Klammern, ist aber viel restriktiver bei Groß-/Kleinschreibung und hat keine freien Texte dazwischen.

Bevor wir uns mit den Makros beschäftigen, sollten wir vielleicht erst einmal einen Blick auf den XML-Code werfen:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab id="customTab" label="Contoso" insertAfterMso="TabHome">
                <group idMso="GroupClipboard" />
                <group idMso="GroupFont" />
                <group id="customGroup" label="Contoso Tools">
                    <button id="customButton1" label="ConBold" size="large" onAction="conBoldSub" imageMso="Bold" />
                    <button id="customButton2" label="ConItalic" size="large" onAction="conItalicSub" imageMso="Italic" />
                    <button id="customButton3" label="ConUnderline" size="large" onAction="conUnderlineSub" imageMso="Underline" />
                </group>
                <group idMso="GroupAlignmentExcel" />
                <group idMso="GroupNumber" />
                <group idMso="GroupFont" />
            </tab>
        </tabs>
    </ribbon>
</customUI>

Damit er korrekt ist, verlangt er eine so genannte Wohlgeformtheit, das bedeutet vor allem das korrekte Öffnen und Schließen von Elementen.

Das öffnende <customUI>-Element am Anfang wird ganz am Ende mit </customUI> geschlossen, daher findet sich dort der Schrägstrich. Alle übrigen XML-Befehle müssen innerhalb stehen. Es gibt auch Elemente, die keine solche Gruppe bilden, manchmal sogar das gleiche Element in beiden Versionen. Dann steht der Schrägstrich direkt vor der letzten spitzen Klammer wie bei <button />.

Unabhängig von diesen Unterschieden kann jedes Element im Start-Element eine vorgegebene Auswahl von optionalen oder zwingenden Attributen enthalten. Viele Attribute besitzen eine vorgegebene Menge an zugelassenen Argumenten, andere erlauben eine freie Eingabe.

Exakte Schreibweise beachten

Wie bereits erwähnt, ist XML pingelig mit der Groß-/Kleinschreibung. Sie können aber davon ausgehen, dass alle Element-Namen in Kleinbuchstaben notiert sind. Lediglich zusammengesetzte Bezeichnungen wie splitButton oder imageMso enthalten am Beginn des neuen Wortes einen Großbuchstaben.

Während andere Editoren (wie beispielsweise der Microsoft Visual Web Developer oder das Visual Studio) diese Elemente und deren Attribute bereits beim Schreiben anbieten und prüfen, bietet der Custom UI Editor das nicht. Sie müssen sich diese Informationen aus anderen Quellen besorgen, daher ist der Beispiel-Code sehr praktisch als Einstieg.

XML-Elemente

Die Zeile <customUI xmlns=http://schemas.microsoft.com/office/2006/01/customui> ist obligatorisch für jedes Ribbon. Darin eingebettet ist das <ribbon>-Element, welches die Beschreibung der Excel-Ribbons einleitet. Alternativ könnten hier auch mit <commands> Excel-interne Befehle abgefangen werden.

Einziges Element in <ribbon> kann nur <tabs> sein, die Sie als Registerkarte(n) auf der Excel-Oberfläche wiederfinden. Die einzelne Registerkarte heißt im XML-Sprachgebrauch <tab> und enthält mindestens eine Gruppe, welche durch eine Umrahmung erkennbar ist. Um die Registerkarte nicht am Ende, sondern zwischen den vorhandenen Registerkarten anzuzeigen, geben Sie deren interne Bezeichnung bei insertAfterMso an.

Erst in einer Gruppe können die eigentlichen Bedienungselemente, wie hier die <button>-Schaltflächen, enthalten sein.

Eingebaute Gruppen, die in Ihrer eigenen Registerkarte (und damit mehrfach) angezeigt werden sollen, müssen über ihre interne Kennung als idMso angesprochen werden. Mehr ist nicht nötig, sie sind damit voll funktionsfähig und verhalten sich exakt wie das Original.

Element-Attribute

Ziemlich alle Elemente enthalten Attribute, die nach einem Gleichheitszeichen mit einem Wert in Anführungszeichen versehen werden. Die meisten Attribute sind formal optional, aber viele davon inhaltlich doch irgendwie zwingend.

Dazu zählt beispielsweise das id-Attribut mit einer eindeutigen Benennung. Diese benötigen Sie, damit das Element von VBA aus überhaupt angesprochen und bei Bedarf verändert werden kann.

Im <ribbon>-Element sorgt die Angabe startFromScratch="false" dafür, dass die originalen Excel-Ribbons weiterhin sichtbar sind. Die eigenen Tabs/Registerkarten werden also zusätzlich zu den vorhandenen angezeigt. Setzen Sie den Parameter auf "true" (Achtung: Kleinschreibung beachten!), erscheinen ausschließlich Ihre eigenen Registerkarten.

Das bisher einzige eigene Register erhält mit id="customTab" eine eindeutige Bezeichnung und mit label="Contoso" (Contoso ist der Name der Microsoft-Beispiel-Firma) eine Beschriftung, wie Sie im obigen Bild sehen konnten. Entsprechendes gilt für die darin enthaltene Gruppe und die <button>-Schaltflächen.

Die <button>-Elemente werden mittels imageMso="Bold" etc. mit einem der in Excel enthaltenen Bildern versehen, daher muss hier noch keine Bild-Datei hinzugeladen werden. Die Größe wird mit size="large" auf volle Höhe gestellt, ansonsten wäre size="normal" mit einem Drittel der Höhe der Standard.

Sobald Sie in Excel auf den <button> klicken, wird das Makro aufgerufen, welches im onAction-Attribut angegeben wurde. Daher wird es nun Zeit für die VBA-Programmierung.