(0) exportieren Drucken
Alle erweitern
Erweitern Minimieren

Anpassen der Multifunktionsleisten-Benutzeroberfläche von Office (2007) für Entwickler - Teil 1

Veröffentlicht: 04. Sep 2006
Von Frank Rice

Informationen zu den Szenarios und zum XML-Markup, mit dem Sie die Multifunktionsleisten-Benutzeroberfläche in Microsoft Office 2007 anpassen können. Durch die Multifunktionsleisten-Benutzeroberfläche werden Menüs, Symbolleisten und ein Großteil des Aufgabenbereichs in der Benutzeroberfläche von Office 2007 ersetzt. Dieser Artikel enthält auch Links zu englischsprachigen Seiten. (31 gedruckte Seiten)

Auf dieser Seite

Verbesserte Benutzeroberfläche Verbesserte Benutzeroberfläche
Neue Möglichkeiten zur Erhöhung der Benutzerfreundlichkeit Neue Möglichkeiten zur Erhöhung der Benutzerfreundlichkeit
Anpassen der Multifunktionsleisten-Benutzeroberfläche für die meisten Office-Anwendungen Anpassen der Multifunktionsleisten-Benutzeroberfläche für die meisten Office-Anwendungen
Wie sieht es bei vorhandenen Lösungen aus? Wie sieht es bei vorhandenen Lösungen aus?
Verwenden von Rückrufen Verwenden von Rückrufen
Zwei Möglichkeiten zum Anpassen der Multifunktionsleisten-Benutzeroberfläche Zwei Möglichkeiten zum Anpassen der Multifunktionsleisten-Benutzeroberfläche
Allgemeines Format von XML-Markup-Dateien Allgemeines Format von XML-Markup-Dateien
Anpassen der Benutzeroberfläche in Access 2007 Anpassen der Benutzeroberfläche in Access 2007
Erstellen einer benutzerdefinierten Multifunktionsleisten-Benutzeroberfläche für Access auf Anwendungsebene Erstellen einer benutzerdefinierten Multifunktionsleisten-Benutzeroberfläche für Access auf Anwendungsebene
Erstellen einer benutzerdefinierten Multifunktionsleisten-Benutzeroberfläche für Access für mehrere Formulare Erstellen einer benutzerdefinierten Multifunktionsleisten-Benutzeroberfläche für Access für mehrere Formulare
Szenarios für das Anpassen der Multifunktionsleisten-Benutzeroberfläche in anderen Office 2007-Anwendungen Szenarios für das Anpassen der Multifunktionsleisten-Benutzeroberfläche in anderen Office 2007-Anwendungen
Verwenden von COM-Add-Ins zum Ändern der Multifunktionsleisten-Benutzeroberfläche Verwenden von COM-Add-Ins zum Ändern der Multifunktionsleisten-Benutzeroberfläche
Hinzufügen von dokumentbasierten Add-Ins zur Multifunktionsleisten-Benutzeroberfläche Hinzufügen von dokumentbasierten Add-Ins zur Multifunktionsleisten-Benutzeroberfläche
Arbeiten mit älteren Befehlsleisten-COM-Add-Ins Arbeiten mit älteren Befehlsleisten-COM-Add-Ins
Dynamisches Aktualisieren der Multifunktionsleisten-Benutzeroberfläche Dynamisches Aktualisieren der Multifunktionsleisten-Benutzeroberfläche
Laden von Bildern Laden von Bildern
Schlussfolgerung Schlussfolgerung
Weitere Ressourcen Weitere Ressourcen

Verbesserte Benutzeroberfläche

Viele Anwendungen in Microsoft Office 2007 haben ein neues Aussehen. Mit der Multifunktionsleisten-Benutzeroberflächen-Funktion wird das aktuelle System aus der in Ebenen angeordneten Menüstruktur, den Symbolleisten und Aufgabenbereichen durch ein einfacheres Oberflächensystem ersetzt, das zur Gewährleistung einer höheren Effizienz und Transparenz optimiert wurde. Die neue Benutzeroberfläche hat bessere Kontextmenüs, eine bessere QuickInfo, eine Mini-Symbolleiste und Tastenkombinationen zur Verbesserung der Benutzereffizienz und -produktivität.

Hinweis:   Die Multifunktionsleisten-Benutzeroberfläche wird in Microsoft Office 2007 implementiert, zu dem Microsoft Office Access 2007, Microsoft Office Excel 2007, Microsoft Office PowerPoint 2007, Microsoft Office Word 2007 and Microsoft Office Outlook 2007 gehören. Sie wird auch in Microsoft Office Outlook 2007 implementiert, wenn ein Benutzer E-Mail-Nachrichten erstellt oder bearbeitet oder mit Kontakten im Kalender arbeitet. Sie können die Multifunktionsleisten-Benutzeroberfläche über eine Kombination aus XML-Markup and einer beliebigen Microsoft .NET-basierten Sprache anpassen, die in Microsoft Visual Studio unterstützt wird. Sie können die Multifunktionsleisten-Benutzeroberfläche auch mit Microsoft Visual Basic für Applikationen (VBA), Microsoft Visual C++ und Microsoft Visual Basic 6.0 anpassen.

Dieser Artikel enthält eine detaillierte Erläuterung der neuen Benutzeroberfläche und bietet Codebeispiele und Szenarios für die Anpassung der Multifunktionsleisten-Benutzeroberfläche.

Neue Möglichkeiten zur Erhöhung der Benutzerfreundlichkeit

Anwendungsentwickler haben die Tools und Programmierstrukturen in älteren Versionen von Office dafür genutzt, die Benutzeroberfläche auf kreative Weise zu erweitern. So konnten Entwickler beispielsweise mit dem CommandBars-Objektmodell umfassende Lösungen in ihre benutzerdefinierten Office-Anwendungen integrieren. In Fortsetzung dieser Tradition wird in der Office-Version 2007 ein innovatives Modell eingeführt, mit dem Entwickler die Benutzerfreundlichkeit erhöhen können. Mit XML (Extensible Markup Language) und einer der herkömmlichen Programmiersprachen können Sie die Komponenten bearbeiten, aus denen die Multifunktionsleisten-Benutzeroberfläche besteht. Da XML nur Text enthält, können Sie Anpassungsdateien in jedem beliebigen Texteditor erstellen, was die Arbeit mit der Benutzeroberfläche erleichtert. Ferner können Sie benutzerdefinierte Dateien für die Multifunktionsleisten-Benutzeroberfläche mit einem Minimum an Änderungen wieder verwenden, weil jede Anwendung dasselbe Programmiermodell verwendet. So können Sie beispielsweise die benutzerdefinierten Dateien für die Multifunktionsleisten-Benutzeroberfläche wieder verwenden, die Sie in Word 2007, Excel 2007, Access 2007 oder PowerPoint 2007 erstellen.

Abbildung 1: Die Multifunktionsleisten-Benutzeroberfläche in Office 2007-Anwendungen
Abbildung 1: Die Multifunktionsleisten-Benutzeroberfläche in Office 2007-Anwendungen

Durch die Verwendung von XML-Markup-Dateien zum Anpassen der Benutzeroberfläche erübrigen sich größtenteils komplexe Add-Ins auf Basis des CommandBars-Objektmodells. Die in früheren Office-Versionen geschriebenen Add-Ins lassen sich jedoch mit geringfügigen oder ohne Änderungen auch in der Multifunktionsleisten-Benutzeroberfläche weiter verwenden. Die Add-Ins werden weiter unten in diesem Artikel erläutert.

Anpassen der Multifunktionsleisten-Benutzeroberfläche für die meisten Office-Anwendungen

Sie können eine benutzerdefinierte Multifunktionsleisten-Benutzeroberfläche auf Anwendungsebene in Word 2007, Excel 2007 oder PowerPoint 2007 auf folgende Weise erstellen:

  • Mithilfe von COM-Add-Ins in verwaltetem oder nicht verwaltetem Code

  • Mithilfe von anwendungsspezifischen Add-Ins, wie z. B. PPAM- und XLAM-Dateien

  • Mithilfe von Vorlagen (DOTM-Dateien) in Word 2007

In einem typischen Szenario enthält der Code im COM-Add-In Prozeduren, die XML-Markup aus einer externen Anpassungsdatei oder aus im Code selbst enthaltenen XML zurückgeben. Beim Starten der Anwendung wird das Add-In geladen und führt den Code aus, der das XML-Markup zurückgibt. Der Code überprüft das XML-Markup anhand eines XSD-Schemas, lädt dieses dann in den Speicher und wendet es auf die Multifunktionsleisten-Benutzeroberfläche an. Dann wird die geänderte Multifunktionsleisten-Benutzeroberfläche angezeigt. Die Befehle und Steuerelemente der Multifunktionsleisten-Benutzeroberfläche verwenden auch Rückrufprozeduren zum Ausführen des im Add-In enthaltenen Codes.

Anpassungen auf Dokumentebene verwenden dasselbe XML-Markup und eine Datei im Open XML-Format mit einer der folgenden Erweiterungen: .docx, .docm, .xlsx, .xlsm, .pptx oder .pptm. Bei diesem Szenario erstellen Sie eine Anpassungsdatei, die das XML-Markup enthält, und speichern diese in einem Ordner. Dann ändern Sie die Bestandteile im Container mit den Dateien im Open XML-Format so, dass sie auf die Anpassungsdatei verweisen. Beim Öffnen des Dokuments in der Office-Anwendung wird die Anpassungsdatei in den Speicher geladen und auf die Multifunktionsleisten-Benutzeroberfläche angewendet. Dann rufen die Befehle und Steuerelemente den im Dokument enthaltenen Code ab und stellen so die jeweiligen Funktionen zur Verfügung.

Wie sieht es bei vorhandenen Lösungen aus?

In früheren Versionen von Office haben Entwickler das CommandBars-Objektmodell zur Entwicklung des Visual Basic-Codes verwendet, mit dem die Benutzeroberfläche geändert wurde. In Office 2007 lässt sich dieser ältere Code meist ohne Änderungen weiter verwenden. Doch die an den Symbolleisten in Microsoft Office 2003 vorgenommenen Änderungen werden jetzt auf der Registerkarte Add-Ins angezeigt. Die Art der angezeigten Anpassung hängt vom ursprünglichen Design des Add-Ins ab. So erstellt Office beispielsweise eine Gruppe Menübefehle, in der die in der früheren Menüstruktur (Menü Datei, Menü Einfügen, Menü Extras usw.) hinzugefügten Elemente enthalten sind. Es wird auch eine Gruppe Symbolleistenbefehle mit den Elementen erstellt, die in den früheren integrierten Symbolleisten (Symbolleiste Standard, Symbolleiste Format, Symbolleiste Grafik usw.) hinzugefügt wurden. Außerdem werden die von einem Add-In-Dokument hinzugefügten benutzerdefinierten Symbolleisten in der Gruppe Benutzerdefinierte Symbolleisten auf der Registerkarte Add-Ins angezeigt.

Verwenden von Rückrufen

Bevor die Anpassung der Multifunktionsleisten-Benutzeroberfläche im Einzelnen erläutert wird, wird die Verwendung von Rückrufen näher beschrieben. Wenn die Multifunktionsleisten-Benutzeroberfläche erweitert werden soll, legen Sie Rückrufe fest, um Eigenschaften zu aktualisieren und Aktionen aus Ihrer Benutzeroberfläche bei Laufzeit auszuführen. Nehmen wir als Beispiel die Rückruffunktion onAction für eine Schaltfläche. Das Markup der Multifunktionsleiste sieht wie folgt aus:

<button id="myButton" onAction="MyButtonOnAction" />

Durch dieses Markup wird angegeben, dass Microsoft Office die Funktion MyButtonOnAction beim Klicken auf die Schaltfläche aufrufen soll. Die Funktion MyButtonOnAction hat eine spezielle Signatur, die von Ihrer Sprachauswahl abhängt; nachstehend ein Beispiel in C:

public void MyButtonOnAction (IRibbonControl control)
   {
      if (control.Id=="myButton")
      {
         System.Windows.Forms.MessageBox.Show("Button clicked!");
      }
   }

Die Funktion MyButtonOnAction kann einen beliebigen Namen haben, solange die Signatur mit einer Signatur in den folgenden Tabellen übereinstimmt:

Anpassen der Multifunktionsleisten-Benutzeroberfläche von Office (2007) für Entwickler (Teil 2 von 2): Tabelle 12: Liste aller C- und VBA-Rückrufe und -Signaturen

Anpassen der Multifunktionsleisten-Benutzeroberfläche von Office (2007) für Entwickler (Teil 2 von 2): Tabelle 13: Liste aller C++- und Visual Basic .NET-Rückrufe und -Signaturen

Sie muss als public deklariert sein. Mit dem Parameter Steuerelement können Sie dieselbe Rückruffunktion für viele verschiedene Steuerelemente verwenden.

Hinweis:   Alle Attribute im XML-Anpassungsmarkup verwenden die Höckerschreibweise, bei der der erste Buchstabe jedes Worts mit Ausnahme des ersten Worts groß geschrieben wird, z. B. onAction und insertBefore.

Zwei Möglichkeiten zum Anpassen der Multifunktionsleisten-Benutzeroberfläche

Office 2007 (mit Ausnahme von Access 2007, wie weiter unten in diesem Artikel beschrieben) bietet zwei Möglichkeiten zum Anpassen der Multifunktionsleisten-Benutzeroberfläche mit XML-Markup: mithilfe von gültigen Dateien im Open XML-Format, die XML-Markup enthalten, oder mithilfe von COM-Add-Ins, die XML-Markup enthalten. Jede von Ihnen in diesem XML-Markup angegebene Änderung ist inkrementell für die vorhandene Multifunktionsleisten-Benutzeroberfläche. So wird beispielsweise durch das Hinzufügen von XML-Markup, mit dem eine benutzerdefinierte Registerkarte erkannt wird, eine einzelne Registerkarte hinzugefügt.

Hinweis:   Die Multifunktionsleisten-Benutzeroberfläche verfügt über einige Attribute, mit denen verschiedene Eigenschaften festgelegt werden können. Eine Liste von Attributen finden Sie in Tabelle 14: Liste der Multifunktionsleistenattribute.

Alle Steuerelemente im Markup der Multifunktionsleisten-Benutzeroberfläche müssen einen der folgenden Bezeichner haben.

Tabelle 1: Einer dieser Bezeichner ist mit allen Steuerelementen zu verwenden

Bezeichner

Beschreibung

Id

Wird mit benutzerdefinierten Steuerelementen verwendet. Dieser Bezeichner wird als Eigenschaft auf einem IRibbonControl an Rufruffunktionen weitergeleitet.

idMso

Wird mit integrierten Steuerelementen verwendet.

idQ

Wird mit qualifizierten Steuerelementen verwendet. Beispiel:

<customUI xmlns=http://schemas.microsoft.com/office/2006/01/customui
          xmlns:x="myNameSpace">
<button idQ="x:myButton" . . . />

Hinweis:   Durch Erstellen eines Namespace x können zwei verschiedene Add-Ins zur selben benutzerdefinierten Gruppe hinzugefügt werden; sie müssen nur durch ihren qualifizierten Namen auf diese benutzerdefinierte Gruppe verweisen.

Anpassen der Multifunktionsleisten-Benutzeroberfläche mit Dateien im Open XML-Format

Auf Dokumentebene laufen die folgenden Schritte beim Anpassen der Multifunktionsleisten-Benutzeroberfläche mit XML-Markup ab. Weitere Informationen finden Sie unter Hinzufügen von dokumentbasierten Add-Ins zur Multifunktionsleisten-Benutzeroberfläche weiter unten in diesem Artikel.

So passen Sie die Multifunktionsleisten-Benutzeroberfläche mit Dateien im Open XML-Format an

  1. Erstellen Sie die Anpassungsdatei in einem beliebigen Texteditor durch Hinzufügen von XML-Markup, mit dem neue Komponenten zur Multifunktionsleisten-Benutzeroberfläche hinzugefügt, vorhandene Komponenten geändert oder Komponenten ausgeblendet werden. Speichern Sie die Datei unter dem Namen customUI.xml.

  2. Erstellen Sie auf Ihrem Desktop einen Ordner mit dem Namen customUI, und kopieren Sie die Anpassungsdatei in diesen Ordner.

  3. Vergleichen Sie das XML-Markup mit dem benutzerdefinierten Benutzeroberflächenschema.

    Hinweis:   Dieser Schritt ist optional.

  4. Erstellen Sie ein Dokument in der Office-Anwendung, und speichern Sie es als Datei im Open XML-Format mit einer der folgenden Erweiterungen: .docx, .docm, .xlsx, .xlsm, .pptm oder .pptx.

    Dateien, die Makros enthalten, haben das Suffix m. Diese Dateien können auch Prozeduren enthalten, die von Befehlen und Steuerelementen der Multifunktionsleiste aufgerufen werden.

  5. Fügen Sie die Erweiterung „.zip“ zum Dokumentdateinamen hinzu, und öffnen Sie dann die Datei.

  6. Fügen Sie dem Container die Anpassungsdatei hinzu, indem Sie den Ordner vom Desktop auf die ZIP-Datei ziehen.

  7. Extrahieren Sie die RELS-Datei aus der ZIP-Datei auf Ihren Desktop. Ein Ordner _rels, der die RELS-Datei enthält, wird auf Ihren Desktop kopiert.

  8. Öffnen Sie die RELS-Datei im _rels-Ordner, fügen Sie eine Zeile hinzu, mit der eine Beziehung zwischen der Dokumentdatei und der Anpassungsdatei hergestellt wird, und speichern Sie dann die Datei.

  9. Fügen Sie den _rels-Ordner wieder dem Container hinzu, wodurch die vorhandene Datei überschrieben wird.

  10. Geben Sie der Datei wieder den ursprünglichen Namen, indem Sie die ZIP-Erweiterung entfernen.

Beim Öffnen der Datei in der Office-Anwendung wird die Multifunktionsleisten-Benutzeroberfläche mit den von Ihnen vorgenommenen Anpassungen angezeigt.

Anpassen der Multifunktionsleisten-Benutzeroberfläche mit COM-Add-Ins

Anpassungen auf Anwendungsebene führen zu einer geänderten Multifunktionsleisten-Benutzeroberfläche, die unabhängig davon, welches Dokument geöffnet ist, in der Anwendung angezeigt wird. Im Wesentlichen erstellen Sie COM-Add-Ins, um diese Änderungen vorzunehmen.

So passen Sie die Multifunktionsleisten-Benutzeroberfläche mit COM-Add-Ins an

  1. Erstellen Sie ein COM-Add-In-Projekt.

    Das von Ihnen erstellte Add-In muss die Extensibility.IDTExtensibility2-Schnittstelle (wie bei allen COM-Add-Ins) und auch die zusätzliche IRibbonExtensibility-Schnittstelle (die im Microsoft.Office.Core-Namespace gefunden wird) implementieren.

  2. Erstellen Sie das Add-In und Setup-Projekt, und installieren Sie dann das Projekt.

  3. Starten Sie die Microsoft Office-Anwendung.

  4. Wenn das Add-In geladen wird, wird das Ereignis IDTExtensibility2::OnConnection ausgelöst, wodurch das Add-In genau wie bei früheren Versionen von Office initialisiert wird.

  5. Dann wird die Methode QueryInterface aufgerufen, die bestimmt, ob die IRibbonExtensibility-Schnittstelle implementiert wird.

  6. In diesem Fall wird die Methode IRibbonExtensibility::GetCustomUI aufgerufen, durch die das XML-Markup (aus der XML-Anpassungsdatei oder dem in der Prozedur eingebetteten XML-Markup) geladen und dann auch die angepasste Multifunktionsleisten-Benutzeroberfläche in die Anwendung geladen wird.

  7. Dann steht die angepasste Multifunktionsleisten-Benutzeroberfläche dem Benutzer zur Verfügung.

Jedes im XML-Markup angegebene Steuerelement macht seine Funktionen durch Aufrufe von Rückrufprozeduren verfügbar. So kann das XML-Markup für ein Schaltflächen-Steuerelement beispielsweise ein onAction-Attribut angeben, das auf eine Prozedur verweist, die ausgeführt wird, wenn der Benutzer auf diese Schaltfläche klickt. Meistens macht die Rückrufprozedur eine IRibbonControl-Schnittstelle verfügbar, die das Steuerelement identifiziert. Sie können auch andere Argumente weiterleiten. So können Sie beispielsweise ein Boolesches Objekt weiterleiten, das den Status einer Umschaltfläche als gedrückt oder nicht gedrückt angibt. Die IRibbonControl-Schnittstelle implementiert drei Eigenschaften: das Kontext-Objekt, das Id-Objekt und die Tag-Eigenschaft. Das Kontext-Objekt ist das aktive Fenster mit der Multifunktionsleiste, die den Rückruf auslöst. Das Id-Objekt ist der Zeichenfolgen-Bezeichner des im Markup angegebenen benutzerdefinierten Steuerelements. Die Tag-Eigenschaft ist eine nicht eindeutige Eigenschaft, die Sie im Markup optional angeben können.

Allgemeines Format von XML-Markup-Dateien

Mit XML-Markup können Sie die Multifunktionsleisten-Benutzeroberfläche anpassen. Das folgende Beispiel zeigt das allgemeine Format einer XML-Markup-Datei zur Anpassung der Multifunktionsleisten-Benutzeroberfläche in Word 2007.

<customUI xmlns="http://schemas.microsoft.com/office/2005/08/customui" > 
   <ribbon startFromScratch="false" > 
      <tabs> 
         <tab idMso="TabWrite"> 
            <group idMso="GroupFont" visible="false" /> 
         </tab> 
         <tab id="CustomTab" label="My Tab"> 
            <group id="mygroup" label="Sample Group" > 
               <button id="Button1" label="My Large Button" 
                  size="large" onAction="MyMacro" /> 
               <button id="Button2" label="My Normal Button" 
                  size="normal" onAction="MyMacro" /> 
            </group > 
            <group id="SimpleControls" label="My Group "> 
               <toggleButton id="ToggleButton1" size="large" 
                  label="Large Toggle Button" getPressed="MyMacro"  /> 
               <checkBox id="CheckBox1" label="A CheckBox" 
                  tooltip="This is a check box" onAction="MyMacro" /> 
               <editBox id="EditBox1" getText="MyMacro" label=
                  "My EditBox" onChange="MyMacro"/> 
               <comboBox id="Combo1" label="My ComboBox" 
                  showItemLabel="false" onChange="MyMacro"> 
                  <item id="Zip1" label="33455" /> 
                  <item id="Zip2" label="81611" /> 
                  <item id="Zip3" label="31561" /> 
               </comboBox> 
               <advanced> 
                  <button id="Launcher" tooltip="My Launcher" 
                     onAction="MyMacro" /> 
               </advanced> 
            </group> 
         </tab> 
      </tabs> 
   </ribbon> 
</customUI>

Dieses XML-Markup führt zu einer geänderten Multifunktionsleisten-Benutzeroberfläche, wie in der folgenden Abbildung dargestellt:

Abbildung 2: Beispiel für eine Anpassung der Multifunktionsleisten-Benutzeroberfläche in Word
Abbildung 2: Beispiel für eine Anpassung der Multifunktionsleisten-Benutzeroberfläche in Word

Bei diesem Beispiel werden die folgenden Änderungen an der Multifunktionsleisten-Benutzeroberfläche in Word 2007 in der dargestellten Reihenfolge vorgenommen:

  • Zuerst werden der Standardnamespace und ein benutzerdefinierter Namespace festgelegt.

  • Im Beispiel wird dann die integrierte Gruppe GroupFont ausgeblendet, die sich auf der integrierten Registerkarte Home befindet.

  • Im Beispiel wird dann rechts neben der letzten integrierten Registerkarte die neue Registerkarte CustomTab hinzugefügt.

    Hinweis:   Erstellen Sie mithilfe des Bezeichnerattributs id= ein benutzerdefiniertes Element, wie z. B. eine benutzerdefinierte Registerkarte. Verweisen Sie mit dem Bezeichnerattribut idMso= auf ein integriertes Element, wie z. B. die Registerkarte TabHome.

  • Dann wird eine neue Gruppe SampleGroup zu My Tab hinzugefügt.

  • Im Beispiel wird eine große Schaltfläche ToogleButton1 zu My Group hinzugefügt. Es wird ein Rückruf onAction und auch ein Rückruf GetPressed angegeben.

  • Im Beispiel wird ein Kontrollkästchen CheckBox1 zu My Group mit einer benutzerdefinierten QuickInfo hinzugefügt. Es wird auch ein Rückruf onAction angegeben.

  • Im Beispiel wird ein Bearbeitungsfeld EditBox1 zu My Group hinzugefügt. Es wird auch ein Rückruf onChange angegeben.

  • Im Beispiel wird ein Kombinationsfeld Combo1 zu My Group mit drei Elementen hinzugefügt. Das Kombinationsfeld gibt einen Rückruf onChange an, der den Text aus jedem Element verwendet.

  • Im Beispiel wird ein Startprogramm Launcher1 zu My Group mit dem festgelegten Rückruf onAction hinzugefügt.

    Ein Startprogramm kann auch ein benutzerdefiniertes Dialogfeld anzeigen, um dem Benutzer mehrere Optionen zu bieten.

  • Im Beispiel wird eine neue Gruppe MyGroup zur benutzerdefinierten Registerkarte hinzugefügt.

  • Im Beispiel wird eine große Schaltfläche Button1 zur Gruppe My Group hinzugefügt. Es wird auch ein Rückruf onAction angegeben.

  • Schließlich wird im Beispiel eine normal große Schaltfläche Button1 zur Gruppe MyGroup hinzugefügt. Es wird auch ein Rückruf onAction angegeben.

Wie Sie sehen, lässt sich die Multifunktionsleisten-Benutzeroberfläche leicht ändern.

Anpassen der Benutzeroberfläche in Access 2007

Bei der Anpassung der Multifunktionsleisten-Benutzeroberfläche werden zum Teil die gleichen Optionen wie bei den anderen Office-Anwendungen verwendet, allerdings mit einigen wichtigen Unterschieden. Wie bei den anderen Office 2007-Anwendungen passen Sie die Multifunktionsleisten-Benutzeroberfläche von Access mit XML-Markup an. Wie bei den anderen Anwendungen können Sie externe Dateien mit XML-Markup oder COM-Add-Ins dazu verwenden, die angepasste Multifunktionsleisten-Benutzeroberfläche in Ihre Anwendung zu integrieren. Doch da Access-Datenbankdateien im Unterschied zu den anderen Office-Anwendungen binär sind und nicht als Dateien im Office Open XML-Format geöffnet werden können, können Sie die Multifunktionsleisten-Benutzeroberfläche von Access nicht durch Hinzufügen von Bestandteilen zur Datenbankdatei anpassen.

Access bietet eine enorme Flexibilität bei der Anpassung der Multifunktionsleisten-Benutzeroberfläche. So können Sie beispielsweise Anpassungsmarkup in einer Tabelle speichern, in eine VBA-Prozedur einbetten, in einer anderen Access-Datenbank speichern oder eine Verknüpfung dazu in einem Excel-Arbeitsblatt herstellen. Sie können auch eine benutzerdefinierte Benutzeroberfläche für die gesamte Anwendung oder für bestimmte Formulare und Berichte festlegen.

Damit Sie sich ein Bild davon machen können, wie leicht die Benutzeroberfläche von Access anzupassen ist, werden im Folgenden einige Szenarios kurz beschrieben.

Hinweis   Da bei diesen exemplarischen Vorgehensweisen auch Änderungen an der Datenbank vorgenommen werden, sollten Sie diese Schritte in einer anderen, also nicht in der eigenen Datenbank ausführen, beispielsweise in der in Access enthaltenen Beispieldatenbank Northwind.

Anpassen der Multifunktionsleisten-Benutzeroberfläche von Access

Alle Anpassungen der Access-Benutzeroberfläche haben eine Gemeinsamkeit: Die Multifunktionsleisten werden der Anwendung nur durch Aufrufen des einzigen funktionsleistenspezifischen VBA-Objektmembers von Access, d. h. der Methode LoadCustomUI, zur Verfügung gestellt. Die Signatur für diese Methode lautet:

expression.LoadCustomUI(CustomUIName As String, CustomUIXML As String),

wobei expression ein Anwendungsobjekt zurückgibt und

CustomUIName der Name der mit diesem Markup zu verknüpfenden Custom Ribbon-ID (ID der benutzerdefinierten Multifunktionsleiste) ist und

CustomUIXML das XML-Anpassungsmarkup enthält.

Um die Multifunktionsleiste zu erstellen und der Anwendung zur Verfügung zu stellen, erstellen Sie in der Regel zuerst ein Modul in der Datenbank mit einer Prozedur zum Aufrufen der Methode LoadCustomUI und übergeben den Namen der Multifunktionsleiste und des XML-Anpassungsmarkup. Wie bereits erwähnt, kann das XML-Markup aus einem in einer Tabelle erstellten Recordset-Objekt, einer externen, nicht zur Datenbank gehörigen Quelle (wie beispielsweise einer XML-Datei, die Sie in eine Zeichenfolge analysieren müssen) oder aus XML-Markup stammen, das direkt in die Prozedur eingebettet ist. Sie können verschiedene Multifunktionsleisten durch mehrere Aufrufe der Methode LoadCustomUI zur Verfügung stellen und unterschiedlichen XML-Markup übergeben, solange der Name der einzelnen Multifunktionsleisten und das Attribut id der Registerkarten, aus denen die Multifunktionsleiste besteht, eindeutig sind.

Nach Abschluss der Prozedur erstellen Sie ein AutoExec-Makro, das die Prozedur mit der RunCode-Aktion aufruft. Auf diese Weise wird die Methode LoadCustomUI beim Starten der Anwendung automatisch ausgeführt, wobei alle benutzerdefinierten Multifunktionsleisten der Anwendung zur Verfügung gestellt werden.

So übernehmen Sie eine angepasste Multifunktionsleiste beim Starten der Anwendung

  1. Führen Sie die oben beschriebenen Schritte aus, um die angepassten Multifunktionsleisten der Anwendung zur Verfügung zu stellen.

  2. Schließen und starten Sie die Anwendung erneut.

  3. Klicken Sie auf die Microsoft Office-Schaltfläche (Menü Datei) und dann auf die Schaltfläche Access-Optionen.

  4. Klicken Sie im linken Fenster auf die Option Start und dann im Bereich Anwendungsoptionen auf Custom Ribbon ID, und wählen Sie eine der Multifunktionsleisten in der Liste aus.

  5. Schließen und starten Sie die Anwendung dann erneut. Die von Ihnen ausgewählte Benutzeroberfläche wird angezeigt.

So weisen Sie eine benutzerdefinierte Multifunktionsleiste einem Formular oder Bericht zu

  1. Führen Sie die oben beschriebenen Schritte aus, um die angepasste Multifunktionsleiste der Anwendung zur Verfügung zu stellen.

  2. Öffnen Sie das Formular oder den Bericht in der Entwurfsansicht.

  3. Klicken Sie auf der Registerkarte Entwurf auf die Schaltfläche Eigenschaftenblatt.

  4. Klicken Sie auf der Registerkarte Alle im Eigenschaftenfenster auf die Dropdownliste Custom Ribbon ID, und wählen Sie dann eine der Multifunktionsleisten in der Liste aus.

  5. Speichern, schließen und öffnen Sie das Formular oder den Bericht dann erneut. Die von Ihnen ausgewählte Benutzeroberfläche wird angezeigt.

    Hinweis:   Die in der Multifunktionsleisten-Benutzeroberfläche angezeigten Registerkarten sind additiv. Sofern Sie die Registerkarten also nicht ausdrücklich ausblenden oder das Attribut Start from Scratch auf True setzen, sind die von einer formular- oder berichtbasierten Multifunktionsleisten-Benutzeroberfläche angezeigten Registerkarten zusätzlich zu den vorhandenen Registerkarten sichtbar.

Zur weiteren Veranschaulichung dieses Prozesses werden nachstehend einige Beispiele erläutert.

Erstellen einer benutzerdefinierten Multifunktionsleisten-Benutzeroberfläche für Access auf Anwendungsebene

Die folgenden Schritte veranschaulichen das Erstellen und Implementieren einer benutzerdefinierten Multifunktionsleiste für die Datenbank.

Vor dem Starten legen Sie eine Option fest, mit der ggf. Fehler beim Ausführen des Codes gemeldet werden.

  1. Klicken Sie auf die Microsoft Office-Schaltfläche (Menü Datei), klicken Sie auf Access-Optionen, und klicken Sie dann auf die Registerkarte Ansicht.

  2. Wählen Sie im Bereich In allen Office-Anwendungen anzeigen die Option Fehler der benutzerdefinierten Benutzeroberfläche in Add-Ins melden.

    Dann erstellen Sie eine Tabelle, die den XML-Markup-Code für die Anpassung enthält:

  3. Starten Sie Access 2007.

  4. Klicken Sie auf der Registerkarte Einfügen auf Tabelle, und klicken Sie dann auf Tabellenentwurf.

  5. Fügen Sie der Tabelle die folgenden Felder hinzu:

    Tabelle 2: DbRibbons-Tabellenfelddefinitionen Feldname Typ ID Long Integer (AutoNumber) RibbonName Text RibbonXml Memo
  6. Klicken Sie dann mit der rechten Maustaste auf die Registerkarte Tabelle1, und klicken Sie auf Datenblattansicht.

  7. Fügen Sie die folgenden Daten in den von Ihnen erstellten Feldern hinzu:

    Tabelle 3: DbRibbons-Tabellendaten Feldname Wert ID (AutoNumber) RibbonName HideData RibbonXml
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
       <ribbon startFromScratch="false">
          <tabs>
             <tab idMso="TabAccessEdit" visible="false" />
             <tab id="dbCustomTab" label="A Custom Tab" visible="true">
             <group id="dbCustomGroup" label="A Custom Group">
                <control idMso="Paste" label="Built-in Paste" enabled="true"/>
                </group>
             </tab>
          </tabs>
       </ribbon>
    </customUI>
    

    Bei diesem Markup wird das Attribut startfromScratch auf False gesetzt und dann die integrierte Registerkarte Bearbeiten ausgeblendet. Dann wird eine benutzerdefinierte Registerkarte und eine benutzerdefinierte Gruppe erstellt und das integrierte Steuerelement Einfügen zur Gruppe hinzugefügt.

  8. Speichern Sie die Tabelle unter dem Namen DbRibbons, und schließen Sie diese.

    Dann erstellen Sie das VBA-Modul und -Makro, mit dem die Multifunktionsleisten (Ribbons) beim Starten geladen werden:

  9. Klicken Sie auf der Registerkarte Einfügen auf die Schaltfläche Erweitert, und klicken Sie dann auf Modul.

  10. Klicken Sie im Visual Basic-Editor im Menü Ansicht auf das Eigenschaftenfenster.

  11. Ändern Sie im Fenster Eigenschaften im Textfeld Name den Namen des Moduls in RibbonLoader.

  12. Fügen Sie im Codefenster den folgenden VBA-Code ein:

    Option Compare Database
    
    Function LoadRibbons()
    Dim i As Integer
    Dim db As DAO.Database
    Set db = Application.CurrentDb
       
    For i = 0 To (db.TableDefs.Count - 1)
       If (InStr(1, db.TableDefs(i).Name, "Ribbons")) Then
          Dim rs As DAO.Recordset
          Set rs = CurrentDb.OpenRecordset(db.TableDefs(i).Name)
          rs.MoveFirst
    
          While Not rs.EOF
                Application.LoadCustomUI rs("RibbonName").Value, rs("RibbonXml").Value
    
                rs.MoveNext
          Wend
    
          rs.Close
          Set rs = Nothing
       End If
    Next i
    
    db.Close
    Set db = Nothing
    End Function
    

    Dieser Code erstellt ein Recordset aus jeder Tabelle, deren Name das Wort „Ribbons“ enthält. Dann wird die LoadCustomUI-Methode zum Laden der Ribbons (Multifunktionsleisten) aufgerufen, um diese der Datenbank zur Verfügung zu stellen. Abschließend werden das Recordset und der Verweis auf das DAO.Database-Objekt geschlossen.

  13. Speichern und schließen Sie den Visual Basic-Editor.

  14. Klicken Sie im Fenster Datenbank auf der Registerkarte Einfügen auf Erweitert, und klicken Sie dann auf Makro.

  15. Fügen Sie im Fenster Makro die folgende Aktion ein:

    Aktion: RunCode

    Name der Funktion: LoadRibbons()

  16. Klicken Sie mit der rechten Maustaste auf die Registerkarte Makro1, und klicken Sie dann auf Speichern.

  17. Geben Sie im Dialogfeld Speichern unterAutoExec ein.

  18. Klicken Sie mit der rechten Maustaste auf die Registerkarte AutoExec, und klicken Sie dann auf Schließen.

  19. Schließen und starten Sie die Datenbank dann erneut.

  20. Klicken Sie auf die Microsoft Office-Schaltfläche, klicken Sie auf Access-Optionen, und klicken Sie dann auf die Registerkarte Start.

  21. Wählen Sie im Bereich Anwendungsoptionen in der Liste Custom Ribbon-ID die Option HideData (Daten ausblenden).

  22. Schließen und starten Sie die Datenbank erneut.

Beachten Sie, dass die Multifunktionsleisten-Benutzeroberfläche nun auch über eine Registerkarte namens A Custom Tab verfügt, die eine Gruppe namens A Custom Group mit einer Schaltfläche Built-in Paste enthält.

Abbildung 3: Die Access-Multifunktionsleisten-Benutzeroberfläche auf Anwendungsebene
Abbildung 3: Die Access-Multifunktionsleisten-Benutzeroberfläche auf Anwendungsebene

In Kurzfassung läuft der folgende Prozess ab: Beim Starten der Datenbank wird das Makro AutoExec ausgeführt, das die LoadRibbons-Prozedur aufruft. Die LoadRibbons-Prozedur erstellt ein Recordset-Objekt anhand der Tabelle DBRibbons und ruft dann die LoadCustomUI-Methode auf, wobei der Name der Multifunktionsleiste und das XML-Anpassungsmarkup übergeben werden. Nach dem Schließen und Neustarten der Anwendung steht das Ribbon HideData zur Verwendung zur Verfügung. Dann stellen Sie das Ribbon HideData so ein, dass es beim Starten der Anwendung angezeigt wird. Nach dem Schließen und Neustarten der Anwendung wird die angepasste Multifunktionsleisten-Benutzeroberfläche angezeigt.

Erstellen einer benutzerdefinierten Multifunktionsleisten-Benutzeroberfläche für Access für mehrere Formulare

Bei diesen Schritten erstellen Sie zwei benutzerdefinierte Multifunktionsleisten-Benutzeroberflächen und weisen zwei unterschiedlichen Formularen jeweils eine andere Benutzeroberfläche zu. Sie könnten die gleichen Schritte auch für einen oder mehrere Berichte ausführen. Bei diesen Schritten wird davon ausgegangen, dass Sie die zuvor beschriebenen Arbeitsschritte bereits ausgeführt haben und dass das Makro und das Modul bereits vorhanden sind.

Zuerst erstellen Sie eine Tabelle, die das XML-Markup für die Anpassung enthält:

  • Starten Sie Access 2007.

  • Klicken Sie auf der Registerkarte Einfügen auf die Schaltfläche Tabelle, und klicken Sie dann auf Tabellenentwurf.

  • Fügen Sie der Tabelle die folgenden Felder hinzu:

    Tabelle 4: FormRibbons-Tabellenfelddefinitionen Feldname Typ ID Long Integer (AutoNumber) RibbonName Text RibbonXml Memo
  • Klicken Sie anschließend mit der rechten Maustaste auf Tabelle1, und klicken Sie dann auf Datenblattansicht.

  • Fügen Sie die beiden folgenden Datensätze und Daten in den von Ihnen erstellten Feldern hinzu:

    Tabelle 5: FormRibbons-Tabellendaten Feldname Wert ID (AutoNumber) RibbonName HideInsert RibbonXml
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
       <ribbon startFromScratch="false">
    
          <tabs>
    
             <tab idMso="TabCreate" visible="true" />
    
             <tab id="frm1CustomTab" label="Custom Form 1 Tab" visible="true">
    
                <group id="frm1CustomGroup" label="A Custom Group">
    
                   <control idMso="Paste" label="Built-in Paste" enabled="true" />
    
                   <control idMso="Copy" label="Display Message" />
    
                </group>
    
             </tab>
    
           </tabs>
    
       </ribbon>
    
    </customUI>
    
    ID (AutoNumber) RibbonName HidePageLayout RibbonXml
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
       <ribbon startFromScratch="false">
    
          <tabs>
    
                <tab idMso="TabPageLayout" visible="false" />
    
             <tab id="frm2CustomTab" label="Custom Form 2 Tab" visible="true">
    
                   <group id="frm2CustomGroup" label="A Custom Group">
    
                      <button id="myButton" label="Display Message" enabled="true" onAction="MyButtonOnAction" />
    
                   </group>
    
                </tab>
    
          </tabs>
    
       </ribbon>
    
    </customUI>
    
  • Speichern Sie die Tabelle unter dem Namen FormRibbons, und schließen Sie diese.

    Da Sie die Prozedur LoadRibbons bereits im vorigen Schritt geschrieben haben, müssen Sie nur noch die Rückrufprozedur hinzufügen, die durch das onAction-Attribut im Ribbon HidePageLayout aufgerufen wird.

  • Öffnen Sie das Modul RibbonLoader.

  • Klicken Sie im Menü Extras auf Verweise, blättern Sie im Dialogfeld Verweise zum Eintrag Microsoft Office 12.0-Objektbibliothek, und klicken Sie dann auf das Kontrollkästchen. Dadurch können Sie auf das IRibbonControl-Objekt zugreifen.

  • Fügen Sie den folgenden Code unter der LoadRibbons-Prozedur ein:

    Sub MyButtonOnAction(ByVal control As IRibbonControl)
       MsgBox ("You clicked " & control.Id)
    End Sub
    
  • Speichern, schließen und starten Sie die Datenbank dann erneut, damit die neuen Ribbons (Multifunktionsleisten) für die Anwendung zur Verfügung stehen.

    Jetzt müssen Sie die ungebundenen Formulare erstellen. Achten Sie darauf, dass keine Tabelle beim Erstellen des Formulars markiert ist. Andernfalls enthält das Formular alle Felder in der Tabelle.

  • Klicken Sie auf der Registerkarte Einfügen auf Einfaches Formular, und klicken Sie dann auf Formularentwurf.

  • Klicken Sie auf der Registerkarte Entwurf auf Eigenschaftenblatt.

  • Suchen Sie im Fenster Eigenschaftenblatt die Eigenschaft Custom Ribbon ID.

  • Klicken Sie in der Liste auf das Ribbon HideInsert.

  • Schließen und speichern Sie das Formular unter dem Namen Form_HideInsert.

  • Wiederholen Sie nun diese Schritte, wobei Sie allerdings unter der Eigenschaft Custom Ribbon ID das Ribbon HidePageLayout auswählen und das Formular unter dem Namen Form_HidePageLayout speichern.

  • Schließen und starten Sie die Datenbank erneut.

  • Öffnen Sie das Formular HideInsert. Beachten Sie, dass die Multifunktionsleisten-Benutzeroberfläche nun auch über eine Registerkarte Custom Form 1 Tab verfügt, die eine Gruppe namens A Custom Group mit den integrierten Schaltflächen Paste (Einfügen) und Copy (Kopieren) enthält.

    Abbildung 4: Die Multifunktionsleisten-Benutzeroberfläche des Formulars HideInsert
    Abbildung 4: Die Multifunktionsleisten-Benutzeroberfläche des Formulars HideInsert

  • Schließen Sie das Formular, und öffnen Sie dann das Formular HidePageLayout. Jetzt zeigt die Multifunktionsleisten-Benutzeroberfläche eine Registerkarte Custom Form 2 Tab an, die eine Gruppe namens A Custom Group mit einer benutzerdefinierten Schaltfläche Display Message (Meldung anzeigen) enthält. Außerdem wird die integrierte Registerkarte Page Layout (Seitenlayout) nicht angezeigt.

    Abbildung 5: Die Multifunktionsleisten-Benutzeroberfläche des Formulars HidePageLayout
    Abbildung 5: Die Multifunktionsleisten-Benutzeroberfläche des Formulars HidePageLayout

  • Öffnen Sie jetzt das Formular HideInsert. Beachten Sie, dass sich die Multifunktionsleisten-Benutzeroberfläche beim Wechseln zwischen den Formularen ändert, je nach dem, welches Formular gerade angezeigt wird.

In den vorangegangenen Schritten wurde erläutert, wie Sie eine anwendungsorientierte Multifunktionsleisten-Benutzeroberfläche und benutzerdefinierte Multifunktionsleisten für verschiedene Formulare erstellen. Sie können eine benutzerdefinierte Multifunktionsleisten-Benutzeroberfläche für Access auch mit einem COM-Add-In erstellen. COM-Add-Ins bieten den Vorzug, dass benutzerdefinierte Multifunktionsleisten-Funktionen als Paket hinzugefügt werden, so dass sich das Hinzufügen von VBA-Code zu den einzelnen Anwendungen erübrigt. Add-Ins werden in Access wie in anderen Office-Anwendungen implementiert.

Nachstehend wird die Multifunktionsleisten-Benutzeroberfläche in anderen Office-Anwendungen erläutert.

Szenarios für das Anpassen der Multifunktionsleisten-Benutzeroberfläche in anderen Office 2007-Anwendungen

In den folgenden Szenarios wird erläutert, wie Sie die Multifunktionsleisten-Benutzeroberfläche ändern und an Ihre Anforderungen anpassen.

Erstellen von benutzerdefinierten Lösungen

Sie können eine eigene Benutzeroberfläche von Grund auf neu erstellen. Das Element <ribbon> (Multifunktionsleiste) hat ein Attribut namens startFromScratch. Wenn Sie das Attribut startFromScratch auf True setzen, werden die integrierten Hauptregisterkarten ausgeblendet. Dies kann sinnvoll sein, wenn Sie eine eigene Benutzeroberfläche erstellen und eigene benutzerdefinierte Komponenten hinzufügen möchten. Wenn Sie das Attribut startFromScratch auf True setzen, müssen Sie auch nicht mehr die Eigenschaft visible für alle Registerkarten manuell und die Gruppen auf False setzen. Durch diese Verknüpfung müssen Sie auch nicht mehr die Befehle im Menü Datei und die Schnellzugriffs-Symbolleiste ausblenden. Standardmäßig ist das Attribut startFromScratch auf False gesetzt.

Hinweis:   Wenn Sie das Attribut startFromScratch auf True setzen, werden alle Befehle im Menü Datei mit Ausnahme der Befehle Neu, Öffnen, Anwendungsoptionen und Beenden ausgeblendet.

Wenn Sie das Attribut startFromScratch auf True setzen, geschieht Folgendes:

  • Standardmäßig werden alle Registerkarten, einschließlich der Registerkarte Add-Ins, ausgeblendet.

  • Das Menü Datei wird geändert und enthält nun die Befehle Neu, Öffnen, Speichern, Drucken, Schließen, Anwendungseinstellungen und Beenden.

    Achtung:   In der XML-Markup-Datei können Sie angeben, dass die Befehle Neu, Öffnen, Speichern, Drucken und Schließen ausgeblendet werden sollen. Dies müssen Sie explizit in der XML-Markup-Datei angeben, indem Sie das Attribut visible für das spezielle Steuerelement auf False setzen. Durch das Ausblenden dieser Befehle lässt sich die Anwendung jedoch unter Umständen nur durch Schließen und Deinstallieren Ihrer Lösung wiederherstellen.

  • Die Schnellzugriffs-Symbolleiste wird ausgeblendet.

Bei dem folgenden Beispiel werden keine Änderungen an der Statusleiste vorgenommen; sie bleibt vorhanden.

Im folgenden XML-Markupbeispiel wird das Attribut startFromScratch zum Anpassen der Multifunktionsleisten-Benutzeroberfläche verwendet:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" > 
   <ribbon startFromScratch="true" > 
      <tabs> 
         <tab id="CustomTab" label="My Tab" > 
            <group id="SimpleControls" label="My Group"> 
               <toggleButton id="ToggleButton1" image="Icon.bmp" 
                  size="large" label="Large Toggle Button"/> 
               <button id="Button2" label="My Button" /> 
               <comboBox id="Combo1" label="ComboBox" showItemLabel="false"> 
                  <item id="Month1" label="January" /> 
                  <item id="Month2" label="February" /> 
                  <item id="Month3" label="March" /> 
               </comboBox> 
               <advanced> 
                  <button id="Launcher" tooltip="My Launcher" 
                     onAction="MyMacro" /> 
               </advanced> 
            </group> 
         </tab> 
      </tabs> 
   </ribbon> 
</customUI>

Bei diesem Beispiel werden alle integrierten Komponenten in der Multifunktionsleisten-Benutzeroberfläche ausgeblendet und durch eine benutzerdefinierte Registerkarte, eine Gruppe und mehrere Steuerelemente ersetzt.

Ein- und Ausblenden von benutzerdefinierten Registerkarten

Sie können das folgende Codebeispiel zum Ein- oder Ausblenden von integrierten oder benutzerdefinierten Registerkarten verwenden :

<tab idMso="TabHome" visible="false" /><tab id="MyTab" getVisible="returnVisibleState" />

Ein- und Ausblenden von Gruppen

Sie können das folgende Codebeispiel zum Ein- oder Ausblenden von integrierten oder benutzerdefinierten Gruppen verwenden:

<tab idMso="TabHome"> 
   <group id="GroupFont" visible="false" /> 
   <group id="MyCustomGroup" label="Custom Group" getVisible="showFunction" /></tab>

Hinzufügen von benutzerdefinierten Registerkarten

Sie können das folgende Codebeispiel zum Hinzufügen von benutzerdefinierten Registerkarten verwenden:

<tab id="CustomTab" label="My Tab" />

Hinzufügen von benutzerdefinierten Gruppen mit Steuerelementen

Sie können das folgende Codebeispiel dazu verwenden, eine benutzerdefinierte Gruppe und dann integrierte Steuerelemente hinzuzufügen:

<group id="CustomGroup" label="My Group"> 
   <toggleButton idMso="Italic" /> 
   <toggleButton idMso="Bold" /> 
   <button idMso="Save" /> 
</group>

Sie können das folgende Codebeispiel dazu verwenden, eine benutzerdefinierte Gruppe und dann benutzerdefinierte Steuerelemente hinzuzufügen:

<group id="CustomGroup" > 
   <toggleButton id="MyToggleButton" size="large" label="Insert My Object"/> 
   <checkBox id="AllowChanges" label="Allow Changes" /> 
   <dropDown id="ChooseDepartment" showLabel="true" label="Choose 
      Department"> 
      <item id="Dept1" label="Shipping" /> 
      <item id="Dept2" label="Accounting" /> 
      <item id="Dept3" label="Engineering" /> 
   </dropDown> 
</group>

Erstellen von benutzerdefinierten Menüs mit verschachtelten Menüs und Steuerelementen

Sie können das folgende Codebeispiel dazu verwenden, ein benutzerdefiniertes Menü zu erstellen und dann verschachtelte Menüs und Steuerelemente hinzuzufügen:

<menu id="MyMenu" label="Test Menu" itemSize="normal"> 
   <togglebutton idMso="Bold"/> 
   <button id="MenuButton" label="Button" /> 
   <button id="MenuButton2" label="" /> 
   <toggleButton id="MenuToggleButton1" label="ToggleButton" /> 
   <button idMso="Exit"/> 
   <menu id="Nested1" label="Advanced" itemSize="normal"> 
      <button idMso="Cut"/> 
      <button idMso="Copy"/> 
      <button idMso="Paste"/> 
      <menu id="Nested2" label="Large" itemSize="large"> 
      <button idMso="Cut"/> 
         <button idMso="Copy"/> 
      <button idMso="Paste"/> 
      </menu> 
   </menu> 
</menu>

Hinzufügen von Kombinationsfeldern oder Dropdownfeldern mit verschachtelten Elementen

Sie können das folgende Codebeispiel dazu verwenden, ein integriertes Kombinationsfeld-Steuerelement mit Elementen und dann ein verschachteltes Schaltflächen-Steuerelement hinzuzufügen. Dropdownlisten-Steuerelemente verwenden dasselbe Format:

<comboBox id="ComboBox1" label="ComboBox" description="A simple combo box" > 
      <item id="item1" label="one" getImage="MyImageMacro" /> 
      <item id="item2" label="two" getImage="MyImageMacro" /> 
      <Item id="item3" label="three" getmage="MyImageMacro" /> 
</comboBox>

Hinzufügen von benutzerdefinierten Katalog-Steuerelementen mit Elementen

Sie können den folgenden Beispielcode dazu verwenden, Katalog-Steuerelemente mit Elementen und dann ein benutzerdefiniertes Schaltflächen-Steuerelement hinzuzufügen.

<gallery id="Gallery1" imageMso="DateAndTime" label=
   "Pick a Month:" columns="3" rows="4" onAction="MyMacro" > 
   <item id="Month1" label="January" /> 
   <item id="Month2" label="February"/> 
   <item id="Month3" label="March"/> 
   <item id="Month4" label="April"/> 
   <item id="Month5" label="May"/> 
   <item id="Month6" label="June"/> 
   <item id="Month7" label="July"/> 
   <item id="Month8" label="August"/> 
   <item id="Month9" label="September"/> 
   <item id="Month10" label="October"/> 
   <item id="Month11" label="November"/> 
   <item id="Month12" label="December"/> 
   <button id="Calendar" label="Calendar..."/> 
</gallery>

Hinweis:   Bei diesen Prozeduren müssen Sie die Element-Steuerelemente vor den Schaltflächen-Steuerelementen definieren.

Sie füllen die Katalog-Steuerelemente bei Laufzeit durch Verwendung von Rückrufen. Im folgenden Beispiel ruft die Methode getItemCount die Anzahl der Elemente, die Methode getItemImage ein benutzerdefiniertes Bild für jedes Element und die Methode getItemLabel eine benutzerdefinierte Bezeichnung für jedes Element ab.

<gallery id="galleryMyPictures" label="My Pictures" size="large" columns="3" getImage=
   "GetImage" onAction="OnAction" showOptionLabel="false" getItemCount="GetItemCount" 
   getItemImage="GetItemImage" getItemLabel="GetItemLabel"/>

Hinzufügen von Schaltflächen-Steuerelementen mit Aktionsrückrufen

Mit dem folgenden Beispielcode können Sie ein Schaltflächen-Steuerelement hinzufügen und dann ein Makro für den für den OnAction-Rückruf angeben.

<button id="Button1" image="Icon.bmp" size="large" label="Press me!" onAction="ThisWorkbook.MyMacro" />

Gruppieren von einzelnen Steuerelementen

Sie können das Konstrukt Feld zum Verknüpfen oder Gruppieren von zwei oder mehr Steuerelementen verwenden.

<box id="box1" boxStyle="horizontal"> 
   <checkBox id="check1" label="Enabled" onAction="IsEnabled_OnAction" /> 
   <checkBox id="check2" label="Visible" onAction="IsVisible_OnAction" /> 
</box>

Verwenden von COM-Add-Ins zum Ändern der Multifunktionsleisten-Benutzeroberfläche

Sie können COM-Add-Ins in C zum Ändern der Multifunktionsleisten-Benutzeroberfläche verwenden, wie in Abbildung 6 dargestellt.

Abbildung 6: Multifunktionsleisten-Benutzeroberfläche mit einer Registerkarte, die mit einem COM-Add-In hinzugefügt wurde
Abbildung 6: Multifunktionsleisten-Benutzeroberfläche mit einer Registerkarte, die mit einem COM-Add-In hinzugefügt wurde

Bei diesem Beispiel wird ein verwaltetes COM-Add-In zum Hinzufügen einer benutzerdefinierten Multifunktionsleisten-Benutzeroberfläche in Word 2007 verwendet. In diesem Beispiel werden eine benutzerdefinierte Registerkarte, Gruppe und Schaltfläche hinzugefügt. Beim Klicken auf die Schaltfläche wird ein Firmenname an der Stelle eingefügt, an der sich der Cursor befindet.

So erstellen Sie eine XML-Anpassungsdatei

  1. Fügen Sie das folgende XML-Markup in einem Texteditor hinzu:

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
       <ribbon> 
          <tabs> 
             <tab id="CustomTab" label="My Tab"> 
             <group id="SampleGroup" label="Sample Group"> 
                <button id="Button" label="Insert Company Name" size="large"  
                   onAction="InsertCompanyName" /> 
             </group> 
             </tab> 
          </tabs> 
       </ribbon> 
    </customUI> 
    
    
  2. Speichern Sie die Datei unter dem Namen customUI.xml, und schließen Sie die Datei.

So erstellen Sie das Microsoft Visual C-Projekt, mit dem die Multifunktionsleisten-Benutzeroberfläche geändert wird

  • Starten Sie Visual Studio .NET 2005.

  • Klicken Sie im Menü Datei auf Neues Projekt.

  • Erweitern Sie im Dialogfeld Neues Projekt unter Projekttypen den Eintrag Andere Projekte, klicken Sie auf Erweiterungsprojekte, und doppelklicken Sie dann auf Gemeinsames Add-In.

  • Geben Sie einen Namen für das Projekt ein. Geben Sie für dieses Beispiel RibbonXSampleCS ein.

  • Klicken Sie im ersten Fenster des Assistenten für gemeinsames Add-In auf Weiter.

  • Wählen Sie im nächsten Fenster Ein Add-In mit Visual C erstellen, und klicken Sie dann auf Weiter.

  • Deaktivieren Sie im nächsten Fenster alle Optionen mit Ausnahme von Microsoft Word, und klicken Sie dann auf Weiter.

  • Geben Sie einen Namen und eine Beschreibung für das Add-In ein, und klicken Sie dann auf Weiter.

  • Aktivieren Sie im Fenster Add-In-Optionen auswählen die Option Das Add-In laden, wenn die Hostanwendung geladen wird, und klicken Sie auf Weiter und dann auf Fertig stellen.

  • Fügen Sie nun die Verweise auf das Projekt hinzu.

  • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, und klicken Sie dann auf Verweis hinzufügen.

  • Wenn der Ordner Verweise nicht angezeigt wird, klicken Sie im Menü Projekt auf Alle Dateien anzeigen

  • Blättern Sie auf der Registerkarte .NET nach unten, und wählen Sie Microsoft.Office.Interop.Word.

  • Blättern Sie auf der Registerkarte COM nach unten, wählen Sie Microsoft Office 12.0-Objektbibliothek, und schließen Sie dann das Dialogfeld.

  • Fügen Sie dann die folgenden Namespaceverweise im Projekt hinzu, sofern diese noch nicht vorhanden sind. Sie müssen diese unter der Zeile Namespace hinzufügen:

    using System.Reflection;
    using Microsoft.Office.Core;
    using System.IO;
    using System.Xml;
    using Extensibility;
    using System.Runtime.InteropServices;
    using MSword=Microsoft.Office.Interop.Word;
    
  • Fügen Sie die XML-Anpassungsdatei als einbettete Ressource im Projekt hinzu, indem Sie die folgenden Schritte ausführen:

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf RibbonXSampleCS, zeigen Sie auf Hinzufügen, und klicken Sie auf Vorhandenes Element.

    2. Navigieren Sie zu der von Ihnen erstellten Datei customUI.xml, markieren Sie die Datei, und klicken Sie dann auf Hinzufügen.

    3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf customUI.xml, und wählen Sie Eigenschaften.

    4. Wählen Sie im Fenster Eigenschaften die Option Buildvorgang, und blättern Sie dann nach unten zu Eingebettete Ressource.

    Für den Zugriff auf ihre Mitglieder müssen Sie dann das einzige Member der IRibbonExtensibility-Schnittstelle in der Klasse Verbinden des Projekts implementieren.

  • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Connect.cs, und klicken Sie dann auf Code anzeigen.

  • Fügen Sie direkt unter der Methode Verbinden die folgende Deklaration hinzu, durch die ein Verweis auf das Word-Anwendungsobjekt erstellt wird.

    private MSword.Application applicationObject;
    
  • Fügen Sie die folgende Zeile zur Methode OnConnection hinzu. Durch diese Anweisung wird eine Instanz des Anwendungsobjekts erstellt:

    applicationObject =(MSword.Application)application;
    
  • Fügen Sie am Ende der Anweisung public class Connect ein Komma hinzu, und geben Sie dann IRibbonExtensibility ein.

    Tipp:   Sie können Microsoft IntelliSense zum Einfügen von Schnittstellenmethoden verwenden. Geben Sie beispielsweise am Ende der Anweisung public class Connect: IRibbonExtensibility ein, klicken Sie mit der rechten Maustaste, zeigen Sie auf Schnittstelle implementieren, und klicken Sie dann auf Schnittstelle explizit implementieren. Dadurch wird ein Stub für das einzige IRibbonExtensibility-Schnittstellenmember hinzugefügt: GetCustomUI. Die Methode sieht wie folgt aus:

    string IRibbonExtensibility.GetCustomUI(string RibbonID)
    {
    }
    
  • Fügen Sie die folgende Prozedur in die GetCustomUI-Methode ein, indem Sie den vorhandenen Code überschreiben:

    return GetResource("customUI.xml");
    
  • Fügen Sie die folgende Methode unter der GetCustommUI-Methode ein:

    private string GetResource(string resourceName)
    {
       Assembly asm = Assembly.GetExecutingAssembly();
    foreach (string name in asm.GetManifestResourceNames())
    {
       if (name.EndsWith(resourceName))
       {
          System.IO.TextReader tr = new
          System.IO.StreamReader(asm.GetManifestResourceStream(name));
          string resource = tr.ReadToEnd;
          tr.Close();
          return resource;
       }
      }
     return null;
    }
    

    Die Methode GetCustomUI ruft die Methode GetResource auf. Die Methode GetResource legt einen Verweis auf diese Assembly während der Laufzeit fest und durchläuft dann die eingebettete Ressource, bis sie die Datei mit dem Namen customUI.xml findet. Dann erstellt sie eine Instanz des StreamReader-Objekts, das die eingebettete Datei mit dem XML-Markup liest. Die Prozedur leitet das XML-Markup zurück an die Methode GetCustomUI, die das XML-Markup an die Multifunktionsleiste (Ribbon) zurückgibt. Alternativ können Sie auch eine Zeichenfolge erstellen, die das XML-Markup enthält, und diese direkt in die Methode GetCustomUI lesen.

  • Fügen Sie diese Methode nach der Methode GetResource hinzu. Diese Methode fügt den Firmennamen in das Dokument am Seitenanfang ein.

    public void InsertCompanyName(IRibbonControl control)
    {
       // Inserts the specified text at the beginning of a range or selection.
       string MyText;
       MyText = "Microsoft Corporation";
    
       MSword.Document doc = applicationObject.ActiveDocument;
    
       //Inserts text at the beginning of the active document.
       object startPosition = 0;
       object endPosition = 0;
       MSword.Range r = (MSword.Range)doc.Range(
          ref startPosition, ref endPosition);
          r.InsertAfter(MyText);
    }
    
    
  • Stellen Sie sicher, dass Word geschlossen ist. Kompilieren Sie sowohl das Add-In als auch das zugehörige Setup-Projekt.

  • Klicken Sie im Menü Projekt auf Projektmappe erstellen. Wenn die Projektmappe fertig erstellt ist, sehen Sie ganz unten links auf dem Bildschirm eine Meldung in der Systemleiste.

  • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf RibbonXSampleCSSetup, und klicken Sie auf Erstellen.

  • Klicken Sie erneut mit der rechten Maustaste auf RibbonXSampleCSSetup, und klicken Sie auf Installieren. Dadurch wird der Bildschirm RibbonXSampleCSSetup Setup-Assistent geöffnet.

  • Klicken Sie in den folgenden Bildschirmen jeweils auf Weiter, und klicken Sie im letzten Bildschirm auf Schließen.

  • Starten Sie Word. Sie sollten die Registerkarte My Tab rechts neben den anderen Registerkarten sehen.

  • Rufen Sie das Trust Center auf, um die Makros zu aktivieren. Klicken Sie auf die Microsoft Office-Schaltfläche (d. h. die runde Schaltfläche ganz oben links auf dem Bildschirm).

  • Klicken Sie auf Trust Center, klicken Sie auf Makroeinstellungen, und aktivieren Sie dann die Optionen Alle Makros mit Benachrichtigung deaktivieren und Zugriff auf das VBA-Projekt-Objektmodell vertrauen.

So testen Sie das Projekt

  1. Klicken Sie mit der rechten Maustaste auf das Setup-Projekt, um das Add-In zu installieren.

  2. Starten Sie Word nach der Installation neu, um die angepasste Benutzeroberfläche anzuzeigen.

    Wenn die angepasste Multifunktionsleisten-Benutzeroberfläche nicht zu sehen ist, müssen Sie u. U. einen Eintrag in der Registrierung hinzufügen. Zu diesem Zweck führen Sie die folgenden Schritte aus:

    Achtung:   Die nächsten Schritte enthalten Informationen über das Ändern der Registrierung. Bevor Sie die Registrierung ändern, sollten Sie eine Sicherungskopie erstellen und genau wissen, wie die Registrierung bei Auftreten eines Problems wiederherzustellen ist. Nähere Informationen zum Sichern, Wiederherstellen und Bearbeiten der Registrierung finden Sie im Artikel Beschreibung der Microsoft Windows-Registrierung (möglicherweise in englischer Sprache) in der Microsoft Knowledge Base.

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Setup-Projekt RibbonXSampleCSSetup, zeigen Sie auf Ansicht, und klicken Sie dann auf Registrierung.

    2. Navigieren Sie auf der Registerkarte Registrierung zu dem folgenden Registrierungsschlüssel für das Add-In:

      HKCU\Software\Microsoft\Office\Word\AddIns\RibbonXSampleCS.Connect

      Hinweis:   Wenn der Schlüssel RibbonXSampleCS.Connect nicht vorhanden ist, können Sie ihn erstellen. Zu diesem Zweck klicken Sie mit der rechten Maustaste auf den Ordner Add-Ins, zeigen Sie auf Neu, und klicken Sie dann auf Schlüssel. Benennen Sie den Schlüssel RibbonXSampleCS.Connect. Fügen Sie ein LoadBehavior-DWord hinzu, und stellen Sie den DWord-Wert auf 3 ein.

Hinzufügen von dokumentbasierten Add-Ins zur Multifunktionsleisten-Benutzeroberfläche

In den folgenden Schritten wird beschrieben, wie Sie eine benutzerdefinierte Multifunktionsleisten-Benutzeroberfläche in Excel 2007 erstellen, die Komponenten zum Aufrufen eines benutzerdefinierten Makros enthalten:

  1. Erstellen Sie eine Excel-Arbeitsmappe mit einem aktivierten Makro.

  2. Erstellen Sie eine Datei zum Anpassen der Multifunktionsleisten-Benutzeroberfläche, indem Sie eine Registerkarte, eine Gruppe und eine Schaltfläche hinzufügen.

  3. Legen Sie für die Schaltfläche einen Rückruf fest, um das von Ihnen im Dokument erstellte Makro aufzurufen.

  4. Ändern Sie den Inhalt des Dokumentcontainers mit dem aktivierten Makro, sodass dieser auf die Datei verweist, mit der die Multifunktionsleisten-Benutzeroberfläche angepasst wird.

  5. Speichern Sie die Datei mit dem aktivierten Makro, und öffnen Sie diese dann in Excel 2007.

So erstellen Sie eine Datei im Open XML-Format mit aktiviertem Makro

  • Starten Sie Excel.

  • Klicken Sie auf die Registerkarte Entwickler und anschließend auf Visual Basic.

    Hinweis:   Wenn die Registerkarte Projektmappen entwickeln nicht angezeigt wird, müssen Sie sich als Entwickler identifizieren. Zu diesem Zweck klicken Sie in Ihrer Anwendung auf das Menü Microsoft Office-Schaltfläche, klicken Sie auf Anwendungseinstellungen, klicken Sie auf Ansicht, und wählen Sie dann Entwicklertools. Mit dieser globalen Einstellung identifizieren Sie sich in allen Microsoft Office-Anwendungen, in denen die Multifunktionsleisten-Benutzeroberfläche implementiert wird, als Entwickler.

  • Doppelklicken Sie im Visual Basic-Editor zum Öffnen des Codefensters auf DieseArbeitsmappe.

  • Geben Sie die folgende VBA-Prozedur ein, und schließen Sie dann den Visual Basic-Editor.

    Ihr Makro sollte in etwa wie folgt aussehen:

    Sub MyMacro(ByVal control as IRibbonControl)
       MsgBox("Hello World")
    End Sub
    

    Hinweis:   Der Rückgabewert in VBA muss vom Variant-Datentyp sein.

  • Speichern Sie das Dokument als Datei im Open XML-Format mit aktiviertem Makro und der Dateierweiterung .xlsm.

So erstellen Sie die XML-Datei, die das XML-Markup zum Ändern der Benutzeroberfläche enthält

  1. Erstellen Sie einen Ordner mit dem Namen customUI, und fügen Sie diesen dem Desktop hinzu.

  2. Öffnen Sie eine neue Datei in einem Texteditor, und speichern Sie diese dann unter dem Namen customUI.xml in dem von Ihnen erstellten Ordner.

  3. Fügen Sie der Datei den folgenden Code hinzu:

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
       <ribbon startFromScratch="true"> 
          <tabs> 
             <tab id="CustomTab" label="My Tab"> 
                <group id="SimpleControls" label="My Group"> 
                   <button id="Button1" imageMso="HappyFace" size="large" 
                      label="Large Button" 
                   onAction="ThisWorkbook.MyMacro" /> 
                </group> 
             </tab> 
          </tabs> 
       </ribbon> 
    </customUI>
    

So ändern Sie Dateien im Dateicontainer mit aktivierten Makros

  1. Fügen Sie die Erweiterung „.zip“ an den Namen der Datei mit aktiviertem Makro an.

  2. Doppelklicken Sie auf den Dateinamen, um die Datei zur Ansicht zu öffnen.

  3. Fügen Sie dem ZIP-Container den customUI-Ordner hinzu.

  4. Extrahieren Sie die RELS-Datei auf den Desktop. Dann wird ein Ordner namens _rels mit der RELS-Datei auf dem Desktop angezeigt.

  5. Öffnen Sie die RELS-Datei im Texteditor.

  6. Fügen Sie die folgende Zeile zwischen dem letzten <Relationship>-Element und dem </Relationships>-Element ein, und speichern und schließen Sie dann die Datei:

    <Relationship Id="someID" Type="http://schemas.microsoft.com/office/2006/relationships
    /ui/extensibility" Target="customUI/customUI.xml" />
    
  7. Ziehen Sie den _rels-Ordner vom Desktop in die ZIP-Containerdatei.

  8. Entfernen Sie die Erweiterung „.zip“ aus der Containerdatei.

  9. Öffnen Sie die Datei mit aktiviertem Makro in Excel 2007. Die integrierte Multifunktionsleisten-Benutzeroberfläche wird durch die angepasste Benutzeroberfläche ersetzt.

  10. Klicken Sie auf Large Button. Die Meldung Hello World wird angezeigt.

Wenn die Meldung nicht angezeigt wird, sollten Sie sicherstellen, dass Makros in der Arbeitsmappe aktiviert sind.

Arbeiten mit älteren Befehlsleisten-COM-Add-Ins

Wenn Sie COM-Add-Ins erstellen, müssen Sie sicherstellen, dass Benutzer mit dem Add-In interagieren können. In früheren Office-Versionen haben Sie zu diesem Zweck ein Menüelement oder eine Symbolleisten-Schaltfläche mit dem CommandBars-Objektmodell in der Anwendung hinzugefügt. In der neuen Office-Version 2007 funktionieren benutzerdefinierte Anwendungen meist ohne Änderungen in der Multifunktionsleisten-Benutzeroberfläche. Doch die von Ihnen mit dem CommandBars-Objektmodell oder einer anderen Technologie für die Änderung von Menüs oder Symbolleisten (wie WordBasic oder XLM) vorgenommenen Änderungen werden auf der separaten Registerkarte Add-Ins angezeigt. Dadurch können Benutzer die für ihre Arbeit erforderlichen Steuerelemente und die von ihnen früher verwendeten Add-Ins leichter finden.

Abbildung 7: Registerkarte „Add-Ins“ in Excel 2007 mit zusätzlicher benutzerdefinierter Symbolleisten-Schaltfläche
Abbildung 7: Registerkarte „Add-Ins“ in Excel 2007 mit zusätzlicher benutzerdefinierter Symbolleisten-Schaltfläche

Um Änderungen an den Elementen der Multifunktionsleisten-Benutzeroberfläche vorzunehmen, können Sie die bereits beschriebenen Verfahren und Codes verwenden. Bei älteren Add-Ins, mit denen die Menüstruktur geändert wird, weisen Sie Ihre Benutzer auf die Registerkarte Add-Ins hin.

Dynamisches Aktualisieren der Multifunktionsleisten-Benutzeroberfläche

Rückrufe, die Eigenschaften eines Steuerelements wiedergeben, werden normalerweise einmal aufgerufen, sofern Sie nicht angeben, dass der Aufruf wiederholt erfolgen soll. Durch Implementieren des Rückrufs onLoad (bei Laden) im customui-Element können Sie einen Rückruf erneut abfragen. Dieser Rückruf wird einmal beim erfolgreichen Laden der Funktionsleisten-Markup-Datei aufgerufen und leitet den Code dann weiter an ein IRibbonUI-Objekt.

Nachstehend finden Sie den Beispielcode zum Abrufen des IRibbonUI-Objekts, damit Sie Ihre Steuerelemente bei Laufzeit aktualisieren können.

XML-Markup:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/
customui" onLoad="ribbonLoaded">

In C:

Schreiben Sie einen Rückruf in Ihrer Connect-Klasse:

IRibbonUI myRibbon;

   public void ribbonLoaded(IRibbonUI ribbon) {
         myRibbon = ribbon;
   }

Dieses Objekt macht die folgenden Methoden verfügbar:

Tabelle 6: Methoden des IRibbonUI-Objekts

Methode

Aktion

Beschreibung

Invalidate()

Rückruf

Markiert alle benutzerdefinierten Steuerelemente zum Aktualisieren

InvalidateControl(string controlID)

Rückruf

Markiert ein bestimmtes Steuerelement zum Aktualisieren

Laden von Bildern

Der Rückruf loadImage gilt für einen einzelnen Rückruf, mit dem sich alle Bilder laden lassen. Nach dem Implementieren dieses Rückrufs leitet Microsoft Office die Zeichenfolge aus dem Bildattribut weiter. Dadurch müssen Sie den Rückruf getImage (Bild abrufen) nicht mehrmals implementieren. Beispiel:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/
customui" loadImage="getImages">
   <button id="myButton" image="mypic.jpg" />

Microsoft Office ruft die Funktion getImages mit dem Parameter mypic.jpg ab und erwartet im Gegenzug ein IPictureDisp-Objekt.

Schlussfolgerung

Die neue Benutzeroberfläche in Microsoft Office 2007 ermöglicht dem Benutzer ein flexibles Arbeiten mit Office-Anwendungen. Zum Anpassen der Benutzeroberfläche in früheren Versionen von Office mussten Sie COM-Add-Ins oder DLL-Dateien (Dynamic Link Library) für jede Anwendung erstellen, die das Add-In verwendete. Dagegen verwendet die Funktionsleisten-Funktion ein textbasiertes, deklaratives XML-Markup, das ein leichteres Erstellen und Anpassen der Multifunktionsleisten-Benutzeroberfläche ermöglicht. Mit einigen XML-Zeilen können Sie genau die richtige, auf Ihre Benutzer zugeschnittene Oberfläche erstellen. Da das XML-Markup in einer einzelnen Datei enthalten ist, lässt sich die Benutzeroberfläche bei geänderten Anforderungen weitaus leichter anpassen. Sie können auch die Benutzerproduktivität erhöhen, indem Sie Befehle an für den Benutzer leicht zu findenden Stellen implementieren. Die Multifunktionsleisten-Benutzeroberfläche erhöht auch die anwendungsübergreifende Konsistenz, wodurch sich der Zeitaufwand für den Benutzer verringert, der sich mit den einzelnen Anwendungen vertraut machen möchte.

Nähere Informationen über die Steuerelemente und Attributlisten der Multifunktionsleisten-Benutzeroberfläche finden Sie unter Anpassen der Multifunktionsleisten-Benutzeroberfläche von Office (2007) für Entwickler (Teil 2 von 2).

Weitere Ressourcen

Weitere Informationen finden Sie unter:

Außerdem können Sie weitere Informationen zu den folgenden verwandten Themen finden:


Anzeigen:
© 2014 Microsoft