RibbonX-Workshop - Grundlagen

Hier lernen Sie den Aufbau eine XML-Datei kennen.



Zuerst die Namespaces für Office 2007 und Office 2010-2016

Namespace für Office 2007:
"customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"

Namespace für Office 2010-2016:
"customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"


Kommen wir zum Menüband. Es gibt zwei Möglichkeiten, wie das benutzerdefinierte Ribbon angezeigt werden kann.

1. Das Ribbon wird an die Standardtabs angehängt (startFormSratch="False").
2. Das Ribbon wird ohne die Standardribbon angezeigt (startFormSratch="True").

Aber dazu kommen wir später.



RibbonX folgt einer klar definierten Struktur, welche hier kurz erklärt werden soll.

Die Grundstruktur im Überblick (Office 2007)

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="onLoad">
<commands>
<!-- Hier werden die Commands aufgelistet -->
</commands>
<ribbon>
<qat><documentControls>
<!-- Hier werden die Elemente aufgelistet -->
</documentControls></qat>
<officeMenu>
<!-- Hier werden die Elemente aufgelistet -->
</officeMenu>
<contextualTabs>
        <!-- Hier wird der TabSetname angegeben>
          <!-- visible="True", wenn nur ein Tab ausgelendet werden soll -->
          <tabSet idMso="TabSetNameAufEnglisch" visible="false">
          <!-- Hier werden einzelne Tabs ausgeblendet -->
           <!-- visibel weglassen, wenn nur einzelne Tabs ausgeblendet werden sollen -->
          <tab idMso="TabNameAufEnglisch" visible="false">
            <!-- Hier werden einzelne Gruppen ausgeblendet -->
             <group idMso="GruppenNameAufEnglisch" visible="false">
             </group>
        </tab>
         </tabSet>
      </contextualTabs>

<tabs>
  <tab>
    <group>
       <!-- Hier werden die Elemente aufgelistet -->
    </group>
    <group>
       <!-- Hier werden die Elemente aufgelistet -->
    </group>
  </tab>
  <tab>
    <group>
       <!-- Hier werden die Elemente aufgelistet -->
    </group>
    <group>
       <!-- Hier werden die Elemente aufgelistet -->
    </group>
  </tab>
  </tabs>
</ribbon>
</customUI>




Die Grundstruktur im Überblick (ab Office 2010)

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="onLoad"> 

   <commands> 
      <!-- Hier werden die Commands aufgelistet Beispiel: "Fett" deaktiviert--> 
         <command idMso="Bold" enabled="false"/>
   </commands> 

   <ribbon> 
      <qat>
        <documentControls> 
            <!-- Hier werden die Elemente aufgelistet --> 
        </documentControls>
      </qat> 

      <contextualTabs> 
            <!-- Hier wird der TabSetname angegeben> -->
            <!-- visible="True", wenn nur ein Tab ausgelendet werden soll --> 
            <tabSet idMso="TabSetNameAufEnglisch" visible="false"> 
                 <!-- Hier werden einzelne Tabs ausgeblendet --> 
                 <!-- visibel weglassen, wenn nur einzelne Tabs ausgeblendet werden sollen --> 
                     <tab idMso="TabNameAufEnglisch" visible="false" > 
                     <!-- Hier werden einzelne Gruppen ausgeblendet --> 
                     <group idMso="GruppenNameAufEnglisch" visible="false" /> 
                 </tab> 
            </tabSet> 
      </contextualTabs> 

      <tabs> 
            <tab> 
                 <group> 
                    <!-- Hier werden die Elemente aufgelistet --> 
                 </group> 
                 <group> 
                    <!-- Hier werden die Elemente aufgelistet --> 
                 </group> 
            </tab> 
            <tab> 
                 <group> 
                    <!-- Hier werden die Elemente aufgelistet --> 
                 </group> 
                 <group> 
                    <!-- Hier werden die Elemente aufgelistet --> 
                 </group> 
            </tab> 
      </tabs> 
   </ribbon> 

   <backstage> 
      <tab id="FileSendMenu" label="Telefon- und Mailfunktion" insertBeforeMso="TabHelp"> 
            <firstColumn > 
                 <group id="grpOne" label="Öffnen" > 
                    <primaryItem> 
                         <!--<button id="firstButton" label="Test" onAction="Test"/>--> 
                    </primaryItem> 
                    <topItems > 
                         <layoutContainer id="lay1" layoutChildren="horizontal"> 
                              <button id="btn0" isDefinitive="true" imageMso="ContactSendMenu" 
                                         style="large" onAction="senden" 
                                         label="Senden über Emaildialog (Outlook erforderlich)"/> 
                         </layoutContainer> 
                    </topItems> 
                 </group> 
            </firstColumn> 
            <secondColumn> 
                 <group id="grpThree" label="Menüeinstellungen" visible="true"> 
                    <topItems> 

                    </topItems> 
                 </group> 
            </secondColumn> 
      </tab> 
   </backstage> 

   <contextMenus> 
      <contextMenu idMso="ContextMenuCell"> 
         <menuSeparator id="ctmSep0"/> 
            <button id="ctmbtn0" label="Rufnummer wählen" 
                    onAction="WählHilfeAufrufen" imageMso="AutoDial" /> 
            <button id="ctmbtn1" label="Als Email senden" 
                    onAction="senden" imageMso="ContactSendMenu" /> 

      </contextMenu> 
   </contextMenus> 
</customUI> 


An erster Stelle steht die Commandebene, über welche zum Beispiel die Exceloptionen deaktiviert werden können. Diese Einstellung hat nur Auswirkung auf die Datei, in welcher die Anweisung steht.

Erst jetzt wird das Ribbon eröffnet. Im Ribbon-Stammtag wird auch startFromScratch angegeben.

An erster Stelle im Ribbon-Tag wird die Schnellstartleiste (Qick Access Toolbar -> QAT) beeinflusst.

Als nächstes kann das Officemenü beeinflusst werden (nur Office 2007).

Jetzt können Kontextregisterkarten (contextualTabs), einzelne Tabs der selben oder einzelne Gruppen der Tabs deaktiviert werden.

Jetzt können die Tabs erstellt werden. Es ist möglich, mehrere Tabs zu erstellen. Welche Elemente genutzt werden können, wird in weiteren Teilen erklärt. Jedes Tab enthält mindestens eine Gruppe mit mindestens einem Element.

Nach dem Ribbon kann das Backstage-View beeinflusst werden (ab Office 2010).

Nach dem Backstage-View kommt das Kontextmenü (ab Office 2010). Im Unterschied zu Office 2007 kann man ab Office 2010 auch die Kontextmenüs per RibbonX erweitern.

Hinweis:
Das Beeinflussen der QAT hat nur Einfluss, wenn startFromScratch auf True gestellt wird. Das Beinflussen des Officemenüs, des Backstage-View und des Kontextmenüs hat nur Auswirkung auf die Datei, in welcher der RibbonX-Code die Anweisung enthält. Nach dem Schließen der Datei oder nach einem Wechsel in eine andere Datei wird die Standardeinstellungen wiederhergestellt.


Das Onload-Ereignis. Dieses ist optional und sorgt dafür, dass das Ribbon dynamisch zur Laufzeit aktualisiert werden kann. Dafür kopieren Sie den folgenden Code in ein Standardmodul der Datei. Die Datei muss Dabei mit der Endung *.xlsm (Excel 2007 Arbeitsmappe mit Makros), *.xlam (Excel 2007 Makro), *.docm (Word 2007 Dokument mit Makros) oder *.dotm (Word 2007 Vorlage mit Makros) gespeichert sein. Das Makro muss an oberster Stelle im Modul stehen (unter der Zeile Option Explicit).

Option Private Module
Option Explicit
Public objRibbon As IRibbonUI

Public Sub onload(ribbon As IRibbonUI)
   Set objRibbon = ribbon
End Sub