Freigeben über


Multifunktionsleisten-XML

Mit dem (XML-)Element auf dem Menüband kann eine Multifunktionshilfe mithilfe von XML angepasst werden. Verwenden Sie das (XML-)Element auf dem Menüband, falls Sie das Menüband so anpassen möchten, dass sie nicht vom Element Menüband (Visual Designer) unterstützt wird. Einen Vergleich der mit jedem Element ausführbaren Aktionen finden Sie unter Übersicht über die Multifunktionsleiste.

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokumentebene für die folgenden Anwendungen: Excel 2007 und Excel 2010, InfoPath 2010, Outlook 2007 und Outlook 2010, PowerPoint 2007 und PowerPoint 2010, Project 2010, Visio 2010, Word 2007 und Word 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

Hinzufügen eines (XML-)Elements auf dem Menüband zu einem Projekt

Sie können im Dialogfeld Neues Element hinzufügen einem beliebigen Office-Projekt ein Element von Menüband (XML) hinzufügen. Visual Studio fügt dem Projekt automatisch die folgenden Dateien hinzu:

  • Eine Menüband-XML-Datei. Mit dieser Datei wird die Benutzeroberfläche des Menübands definiert. Sie können mit der Datei Benutzeroberflächenelemente, z. B. Registerkarten, Gruppen und Steuerelemente, hinzufügen. Details finden Sie im weiteren Verlauf dieses Themas unter Referenz für die Menüband-XML-Datei.

  • Eine Menüband-Codedatei. Diese Datei enthält die Menübandklasse. Diese Klasse besitzt den Namen, den Sie im Dialogfeld Neues Element hinzufügen für das Element Menüband (XML) angegeben haben. In Microsoft Office-Anwendungen wird das benutzerdefinierte Menüband mithilfe einer Instanz dieser Klasse geladen. Details finden Sie im weiteren Verlauf dieses Themas unter Referenz für die Menübandklasse.

Mit diesen Dateien wird der Registerkarte Add-Ins im Menüband standardmäßig eine benutzerdefinierte Gruppe hinzugefügt.

Anzeigen des benutzerdefinierten Menübands in einer Microsoft Office-Anwendung

Nach dem Hinzufügen eines Elements von Menüband (XML) zum Projekt muss der ThisAddin-Klasse, der ThisWorkbook-Klasse oder der ThisDocument-Klasse Code hinzugefügt werden, mit dem die CreateRibbonExtensibilityObject-Methode überschrieben und der Office-Anwendung die Menüband-XML-Klasse zurückgegeben wird.

Im folgenden Codebeispiel wird die CreateRibbonExtensibilityObject-Methode überschrieben und eine Menüband-XML-Klasse mit der Bezeichnung "MyRibbon" zurückgegeben.

Protected Overrides Function CreateRibbonExtensibilityObject() As  _
Microsoft.Office.Core.IRibbonExtensibility
    Return New MyRibbon()
End Function
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    return new MyRibbon();
}

Definieren des Verhaltens des benutzerdefinierten Menübands

Das Erstellen von Rückrufmethoden ermöglicht es, auf Benutzeraktionen, z. B. das Klicken auf eine Schaltfläche auf dem Menüband, zu reagieren. Rückrufmethoden ähneln Ereignissen in Windows Forms-Steuerelementen, werden jedoch durch ein Attribut im XML-Code des Benutzeroberflächenelements angegeben. Sie schreiben Methoden in der Menübandklasse, und ein Steuerelement ruft die Methode auf, deren Name dem Attributwert entspricht. Sie können beispielsweise eine Rückrufmethode erstellen, die aufgerufen wird, wenn ein Benutzer auf eine Schaltfläche auf dem Menüband klickt. Zum Erstellen einer Rückrufmethode sind zwei Schritte erforderlich:

  • Weisen Sie einem Steuerelement in der Menüband-XML-Datei ein Attribut zu, mit dem eine Rückrufmethode im Code angegeben wird.

  • Definieren Sie die Rückrufmethode in der Menübandklasse.

Tipp

Für Outlook ist ein zusätzlicher Schritt erforderlich. Weitere Informationen finden Sie unter Anpassen einer Multifunktionsleiste in Outlook.

Eine exemplarische Vorgehensweise, in der das Automatisieren einer Anwendung über das Menüband veranschaulicht wird, finden Sie unter Exemplarische Vorgehensweise: Erstellen einer benutzerdefinierten Registerkarte mit Multifunktionsleisten-XML.

Zuweisen von Rückrufmethoden zu Steuerelementen

Um einem Steuerelement in der Menüband-XML-Datei eine Rückrufmethode zuzuweisen, fügen Sie ein Attribut hinzu, das den Typ und den Namen der Rückrufmethode angibt. Beispielsweise wird mit dem folgenden Element eine Umschaltfläche definiert, die über die onAction-Rückrufmethode OnToggleButton1 verfügt.

<toggleButton id="toggleButton1" onAction="OnToggleButton1" />

onAction wird aufgerufen, wenn der Benutzer die einem bestimmten Steuerelement zugeordnete Hauptaufgabe ausführt. Beispielsweise wird die onAction-Rückrufmethode einer Umschaltfläche aufgerufen, wenn der Benutzer auf die Schaltfläche klickt.

Die Methode, die Sie im Attribut angeben, kann jeden beliebigen Namen aufweisen. Er muss jedoch dem Namen der Methode entsprechen, die Sie in der Menüband-Codedatei definieren.

Sie können Menübandsteuerelementen viele unterschiedliche Typen von Rückrufmethoden zuweisen. Eine vollständige Liste der für jedes Steuerelement verfügbaren Rückrufmethoden finden Sie im technischen Artikel Anpassen der Benutzeroberfläche der Office (2007)-Multifunktionsleiste für Entwickler (Teil von 3 von 3).

Definieren von Rückrufmethoden

Definieren Sie die Rückrufmethoden der Menübandklasse in der Menüband-Codedatei. Für eine Rückrufmethode gelten mehrere Anforderungen:

  • Sie muss als public deklariert sein.

  • Ihr Name muss mit dem Namen einer Rückrufmethode übereinstimmen, die Sie in der Menüband-XML-Datei einem Steuerelement zugewiesen haben.

  • Ihre Signatur muss mit der Signatur eines Typs von Rückrufmethoden übereinstimmen, der für das zugeordnete Menübandsteuerelement verfügbar ist.

Eine vollständige Liste der Signaturen für Rückrufmethoden für Menübandsteuerelemente finden Sie im technischen Artikel Anpassen der Benutzeroberfläche der Office (2007)-Multifunktionsleiste für Entwickler (Teil 3 von 3). Visual Studio bietet keine IntelliSense-Unterstützung für in der Menüband-Codedatei erstellte Rückrufmethoden. Wenn Sie eine Rückrufmethode erstellen, die mit keiner gültigen Signatur übereinstimmt, wird der Code zwar kompiliert, wenn der Benutzer jedoch auf das Steuerelement klickt, wird keine Aktion ausgeführt.

Alle Rückrufmethoden verfügen über einen Microsoft.Office.Core.IRibbonControl-Parameter, der das Steuerelement darstellt, von dem die Methode aufgerufen wurde. Mithilfe dieses Parameters können Sie dieselbe Rückrufmethode für mehrere Steuerelemente wiederverwenden. Im folgenden Codebeispiel wird eine onAction-Rückrufmethode veranschaulicht, die je nach Steuerelement, auf das der Benutzer klickt, unterschiedliche Aufgaben ausführt.

Public Sub OnActionCallback(ByVal control As Office.IRibbonControl, _
    ByVal isPressed As Boolean)

    If (control.Id = "checkBox1") Then
        MessageBox.Show("You clicked " + control.Id)
    Else
        MessageBox.Show("You clicked a different control.")
    End If

End Sub
public void OnActionCallback(Office.IRibbonControl control, bool isPressed)
{
    if (control.Id == "checkBox1")
    {
        MessageBox.Show("You clicked " + control.Id);
    }
    else
    {
        MessageBox.Show("You clicked a different control.");
    }
}

Referenz für die Menüband-XML-Datei

Sie können das benutzerdefinierte Menüband ändern, indem Sie der Menüband-XML-Datei Elemente und Attribute hinzufügen. Die Menüband-XML-Datei enthält standardmäßig folgenden XML-Code.

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad">
  <ribbon>
    <tabs>
      <tab idMso="TabAddIns">
        <group id="MyGroup"
               label="My Group">
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

In der folgenden Tabelle werden die Standardelemente in der Menüband-XML-Datei beschrieben.

Element

Beschreibung

customUI

Stellt das benutzerdefinierte Menüband im Add-In-Projekt dar.

ribbon

Stellt das Menüband dar.

tabs

Stellt einen Satz von Menübandregisterkarten dar.

tab

Stellt eine einzelne Menübandregisterkarte dar.

group

Stellt eine Gruppe von Steuerelementen auf der Menübandregisterkarte dar.

Diese Elemente verfügen über Attribute, die Aussehen und Verhalten des benutzerdefinierten Menübands angeben. In der folgenden Tabelle werden die Standardattribute in der Menüband-XML-Datei beschrieben.

Attribut

Übergeordnetes Element

Beschreibung

onLoad

customUI

Gibt eine Methode an, die aufgerufen wird, wenn die Anwendung das Menüband lädt.

idMso

tab

Gibt eine integrierte Registerkarte an, die auf dem Menüband angezeigt werden soll.

id

group

Bezeichnet die Gruppe.

label

group

Gibt den in der Gruppe angezeigten Text an.

Die Standardelemente und -attribute in der Menüband-XML-Datei sind eine kleine Teilmenge der verfügbaren Elemente und Attribute. Eine vollständige Liste der verfügbaren Elemente und Attribute finden Sie im technischen Artikel Anpassen der Benutzeroberfläche der Office (2007)-Multifunktionsleiste für Entwickler (Teil von 3 von 3).

Referenz für die Menübandklasse

Visual Studio generiert die Menübandklasse in der Menüband-Codedatei. Fügen Sie dieser Klasse die Rückrufmethoden für Steuerelemente auf dem Menüband hinzu. Diese Klasse implementiert die Microsoft.Office.Core.IRibbonExtensibility-Schnittstelle.

In der folgenden Tabelle werden die Standardmethoden dieser Klasse beschrieben.

Methode

Beschreibung

GetCustomUI

Gibt den Inhalt der Menüband-XML-Datei zurück. Microsoft Office-Anwendungen rufen diese Methode auf, um eine XML-Zeichenfolge abzurufen, die die Benutzeroberfläche eines benutzerdefinierten Menübands definiert. Diese Methode implementiert die IRibbonExtensibility.GetCustomUI(String)-Methode.

HinweisHinweis
GetCustomUI sollte nur implementiert werden, um den Inhalt der Menüband-XML-Datei zurückzugeben, und nicht zum Initialisieren des Add-Ins.Insbesondere sollten die Dialogfelder oder andere Fenster in der GetCustomUI-Implementierung nicht angezeigt werden.Dies könnte bei dem benutzerdefinierten Menüband andernfalls zu nicht ordnungsgemäßem Verhalten führen.Wenn Sie Code ausführen müssen, der das Add-In initialisiert, fügen Sie den Code dem ThisAddIn_Startup-Ereignishandler hinzu.

OnLoad

Weist dem ribbon-Feld den Microsoft.Office.Core.IRibbonControl-Parameter zu. Microsoft Office-Anwendungen rufen diese Methode beim Laden des benutzerdefinierten Menübands auf. Mit diesem Feld können Sie das benutzerdefinierte Menüband dynamisch aktualisieren. Weitere Informationen finden Sie im technischen Artikel Anpassen der Benutzeroberfläche der Office (2007)-Multifunktionsleiste für Entwickler (Teil von 3 von 3).

GetResourceText

Wird von der GetCustomUI-Methode aufgerufen, um den Inhalt der Menüband-XML-Datei abzurufen.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erstellen einer benutzerdefinierten Registerkarte mit Multifunktionsleisten-XML

Weitere Ressourcen

Übersicht über die Multifunktionsleiste

Anpassung der Office-Benutzeroberfläche