Anpassen des Office Fluent-Menübands mithilfe eines Managed COM-Add-Ins

Die Menüband-Komponente der Microsoft Office Fluent-Benutzeroberfläche in Microsoft Office-Suites verleiht Benutzern Flexibilität bei der Arbeit mit Office-Anwendungen. Die Menübanderweiterung (RibbonX) verwendet einfaches, textbasiertes, deklaratives XML-Markup, um das Menüband zu erstellen und anzupassen.

Das Codebeispiel in diesem Thema zeigt, wie Sie das Menüband in einer Office-Anwendung anpassen, unabhängig davon, welches Dokument geöffnet ist. In den folgenden Schritten erstellen Sie Anpassungen auf Anwendungsebene mithilfe eines verwalteten COM-Add-Ins und erstellen das Add-In in Microsoft Visual Studio 2012 mithilfe von Microsoft Visual C#. Das Projekt fügt dem Menüband eine benutzerdefinierte Registerkarte, eine benutzerdefinierte Gruppe und eine benutzerdefinierte Schaltfläche hinzu. Um das Verfahren abzuschließen, führen Sie die folgenden Aufgaben aus.

  1. Erstellen Sie die XML-Anpassungsdatei.

  2. Erstellen Sie ein verwaltetes COM-Add-In-Projekt in Microsoft Visual Studio 2012 mit C#.

  3. Fügen Sie die XML-Anpassungsdatei dem Projekt als eingebettete Ressource hinzu.

  4. Implementieren Sie die IRibbonExtensibility -Benutzeroberfläche.

  5. Erstellen Sie eine Rückrufmethode, die ausgelöst wird, wenn die Schaltfläche ausgewählt wird.

  6. Erstellen, installieren und testen Sie das Projekt.

Erstellen der XML-Anpassungsdatei

In diesem Schritt erstellen Sie die Datei, die dem Menüband die benutzerdefinierten Komponenten hinzufügt.

  1. Fügen Sie das folgende XML-Markup in einem Text-Editor 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. Schließen und speichern Sie die Datei unter dem Namen customUI.xml.

Erstellen eines verwalteten COM-Add-In-Projekts

In diesem Schritt erstellen Sie das COM-Add-In C#-Projekt in Microsoft Visual Studio 2012.

  1. Starten Sie Microsoft Visual Studio 2012.

  2. Wählen Sie im Menü Datei die Option Neues Projekt aus.

  3. Erweitern Sie im Dialogfeld Neues Projekt unter Projekttypen die Option Andere Projekte, wählen Sie Erweiterbarkeitsprojekte aus, und doppelklicken Sie dann auf Freigegebenes Addin.

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

  5. Klicken Sie im ersten Bildschirm des Assistenten für freigegebene Add-Ins auf Weiter.

  6. Wählen Sie Add-In mit Visual C# erstellen und dann Weiter aus.

  7. Löschen Sie alle Auswahlmöglichkeiten außer Microsoft Word, und wählen Sie dann Weiter aus.

  8. Geben Sie einen Namen und eine Beschreibung für das Add-In ein, und wählen Sie dann Weiter aus.

  9. Wählen Sie auf dem Bildschirm Add-In-Optionen auswählen die Option Ich möchte, dass mein Add-In geladen werden soll, wenn die Hostanwendung geladen wird, und wählen Sie dann Weiter aus.

  10. Wählen Sie Fertig stellen aus, um den Assistenten abzuschließen.

Hinzufügen externer Verweise zum Projekt

In diesem Schritt fügen Sie Verweise zum primären Interop-Assemblys von Word zur Typbibliothek hinzu.

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, und wählen Sie dann Verweis hinzufügen aus.

    Hinweis

    Wenn der Ordner Verweise nicht angezeigt wird, wählen Sie das Menü Projekt und dann Alle Dateien anzeigen aus.

  2. Führen Sie auf der Registerkarte .NET einen Bildlauf nach unten durch, drücken Sie die STRG-TASTE, und wählen Sie Microsoft.Office.Interop.Word.

  3. Scrollen Sie auf der Registerkarte COM nach unten, wählen Sie entweder die Microsoft Office 15.0-Objektbibliothek (oder die Bibliothek aus, die für Ihre Office-Version geeignet ist), und wählen Sie dann OK aus.

  4. Fügen Sie dem Projekt die folgenden Namespaceverweise hinzu, sofern sie noch nicht vorhanden sind, direkt unterhalb der Namespacezeile .

     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; 
    

Hinzufügen der XML-Anpassungsdatei als eingebettete Ressource

In diesem Schritt fügen Sie die XML-Anpassungsdatei als eingebettete Ressource in das Projekt ein.

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

  2. Navigieren Sie zu der customUI.xml Datei, die Sie erstellt haben, wählen Sie die Datei aus, und wählen Sie dann Hinzufügen aus.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf customUI.xml, und klicken Sie dann auf Eigenschaften.

  4. Wählen Sie im Eigenschaftenfenster Buildaktion aus, und scrollen Sie dann nach unten zu Eingebettete Ressource.

Implementieren der IRibbonExtensibility-Benutzeroberfläche

In diesem Schritt können Sie Code zu "Extensibility.IDTExtensibility2::OnConnection" hinzufügen, um einen Verweis auf die Word-Anwendung zur Laufzeit zu erstellen. Außerdem implementieren Sie das einzige Mitglied der IRibbonExtensibility -Benutzeroberfläche, und zwar GetCustomUI.

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Connect.cs, und wählen Sie dann Code anzeigen aus.

  2. Nach der Connect -Methode fügen Sie die folgende Deklaration hinzu, wobei ein Verweis auf das Word-Anwendungs -Objekt erstellt wird:

    private MSword.Application applicationObject;

  3. Fügen Sie der OnConnection-Methode die folgende Zeile hinzu. Diese Anweisung erstellt eine instance des Word Application-Objekts:

    applicationObject =(MSword.Application)application;

  4. Fügen Sie am Ende der Connect-Anweisung der öffentlichen Klasse ein Komma hinzu, und geben Sie dann IRibbonExtensibility ein.

    Hinweis

    Verwenden Sie Microsoft IntelliSense, um Schnittstellenmethoden für Sie einzufügen. Geben Sie beispielsweise am Ende der Connect-Anweisung der öffentlichen Klasse IRibbonExtensibility ein, klicken Sie mit der rechten Maustaste, zeigen Sie auf Schnittstelle implementieren, und wählen Sie dann Schnittstelle explizit implementieren aus. Auf diese Weise wird ein Stub für die GetCustomUI -Methode hinzugefügt. Die Implementierung sieht ähnlich wie der folgende Code aus.

       string IRibbonExtensibility.GetCustomUI(string RibbonID) 
     { 
     }
    
  5. Fügen Sie die folgende Anweisung in die GetCustomUI-Methode ein, und überschreiben Sie dabei den vorhandenen Code: return GetResource("customUI.xml");

  6. Fügen Sie die folgende Methode unterhalb der GetCustomUI-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)); 
                       //Debug.Assert(tr != null); 
                       string resource = tr.ReadToEnd(); 
    
                       tr.Close(); 
                       return resource; 
                   } 
               } 
               return null; 
           } 
    
    

    Die GetCustomUI -Methode ruft die GetResource -Methode auf. Die GetResource -Methode setzt während der Laufzeit einen Verweis auf diese Assembly und durchläuft dann die eingebettete Ressource, bis es die eine benannte Datei "customUI.xml" findet. Anschließend erstellt sie eine Instanz des StreamReader -Objekts, das die eingebettete Datei mit dem XML-Markup liest. Die Prozedur reicht die XML-Daten an die GetCustomUI -Methode weiter, die die XML-Daten an das Menüband zurückgibt. Alternativ können Sie eine Zeichenfolge erstellen, die das XML-Markup enthält und diese direkt in die GetCustomUI -Methode einlesen.

  7. Fügen Sie nach der GetResource -Methode diese Methode ein. Diese Methode fügt den Firmennamen in das Dokument am Seitenbeginn 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); 
           } 
    
    

Erstellen und Installieren des Projekts

In diesem Schritt erstellen Sie das Add-In und sein Setup-Projekt. Bevor Sie fortfahren, stellen Sie sicher, dass Sie Word beendet haben.

  1. Wählen Sie im Menü Projekt die Option Projektmappe erstellen aus. Wenn das Projekt erstellt wurde, wird unten links im Fenster eine Benachrichtigung angezeigt.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf RibbonXSampleCSSetup, und wählen Sie dann Erstellen aus.

  3. Klicken Sie erneut mit der rechten Maustaste auf RibbonXSampleCSSetup , und wählen Sie Installieren aus, um den Setup-Assistenten für RibbonXSampleCSSetup zu starten.

  4. Wählen Sie in jedem der Bildschirme Weiter und dann auf dem letzten Bildschirm Schließen aus.

  5. Starten Sie Word. Rechts neben den anderen Registerkarten sollte die Registerkarte My Tab angezeigt werden.

Testen des Projekts

Wählen Sie die Registerkarte Meine Registerkarte und dann Firmenname einfügen aus, um den Firmennamen am Cursor in das Dokument einzufügen. Wenn das angepasste Menüband nicht angezeigt wird, müssen Sie möglicherweise einen Eintrag zur Windows-Registrierung hinzufügen, indem Sie die folgenden Schritte ausführen.

Achtung

[!VORSICHT] Die nächsten Schritte enthalten Informationen dazu, wie Sie die Windows-Registrierung bearbeiten. Bevor Sie Änderungen an der Registrierung vornehmen, erstellen Sie eine Sicherungskopie, und stellen Sie sicher, dass Sie genau wissen, wie die Registrierung im Falle eines Problems wiederhergestellt wird. Weitere Informationen zum Sichern, Wiederherstellen und Bearbeiten der Registrierung finden Sie in diesem Microsoft Knowledge Base-Artikel: Windows-Registrierungsinformationen für fortgeschrittene Benutzer (256986).

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Setupprojekt RibbonXSampleCSSetup, zeigen Sie auf Ansicht, und wählen Sie dann Registrierung aus.

  2. Navigieren Sie über die Registerkarte Registrierung zum folgenden Registrierungsschlüssel für das Add-In: HKCU\Software\Microsoft\Office\Word\AddIns\RibbonXSampleCS.Connect

    Hinweis

    [!HINWEIS] Wenn der Schlüssel RibbonXSampleCS.Connect nicht existiert, können Sie ihn erstellen. Klicken Sie hierzu mit der rechten Maustaste auf den Ordner Addins , zeigen Sie auf Neu, und wählen Sie dann Schlüssel aus. Benennen Sie den Schlüssel RibbonXSampleCS.Connect. Fügen Sie ein LoadBehavior-DWord hinzu, und legen Sie dessen Wert auf 3 fest.

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.