Erstellen benutzerdefinierter Aufgabenbereiche mit Visual Studio Tools für Office

Veröffentlicht: 27. Nov 2006

Von Robert Green

Die Version 2007 des Systems Microsoft Office führt verbesserte Aufgabenbereiche ein, mit denen Benutzern kontextbasierte Unterstützung geboten werden kann. Erfahren Sie, wie Sie benutzerdefinierte Aufgabenbereiche mit den Microsoft Visual Studio 2005-Tools für Office 2007 erstellen können. (25 gedruckte Seiten)

Auf dieser Seite

Benutzerdefinierte Aufgabenbereiche Benutzerdefinierte Aufgabenbereiche
Erstellen benutzerdefinierter Aufgabenbereiche mit Visual Studio Tools for Office Second Edition Erstellen benutzerdefinierter Aufgabenbereiche mit Visual Studio Tools for Office Second Edition
Nutzen der Multifunktionsleiste für das Anzeigen benutzerdefinierter Aufgabenbereiche Nutzen der Multifunktionsleiste für das Anzeigen benutzerdefinierter Aufgabenbereiche
Erstellen datengebundener benutzerdefinierter Aufgabenbereiche Erstellen datengebundener benutzerdefinierter Aufgabenbereiche
Schlussbemerkung Schlussbemerkung
Weitere Ressourcen Weitere Ressourcen
Der Autor Der Autor

Benutzerdefinierte Aufgabenbereiche

Mit Microsoft Office 2003 wurde der Aufgabenbereich Dokumentvorgänge eingeführt. Ein Aufgabenbereich ist ein Feld, das seitlich am Dokument angedockt werden kann, und den Benutzern kontextbezogene Unterstützung bietet. Microsoft Office 2003-Produkte umfassen mehrere Aufgabenbereiche. Einige dieser Aufgabenbereiche, wie Hilfe und Recherche, liegen bei allen Anwendungen vor. Andere sind dagegen anwendungsspezifisch, wie Neues Dokument und Neue Arbeitsmappe.

Wenn Sie Lösungen mit Microsoft Visual Studio 2005 Tools für das Microsoft Office-System erstellen (auch Visual Studio Tools für Office genannt), können Sie benutzerdefinierte Arbeitsbereiche auf Dokumentenebene erstellen, die „Aktionsbereiche“ genannt werden. Diese Aktionsbereiche können Sie Dokumenten bei Microsoft Office Word 2003 und Arbeitsmappen bei Microsoft Office Excel 2003 zufügen. Beispielsweise können Sie Aktionsbereiche erstellen, die Benutzer beim Ausfüllen von Spesenberichten in Excel oder beim Verfassen von Briefen an neue Kunden in Word unterstützen.

Visual Studio Tools für Office bietet ein Arbeitsbereichs-Steuerelement. Dabei handelt es sich um ein Microsoft Windows Forms-Steuerelement, das in den Arbeitsbereich Dokumentvorgänge bei Word und Excel integriert ist. Dieses Aktionsbereich-Steuerelement kann auch andere Windows Forms-Steuerelemente enthalten. Sie erstellen einen Aktionsbereich für ein Dokument oder eine Arbeitsmappe, indem Sie ein Benutzersteuerelement erstellen, das die Benutzerschnittstelle umfasst, auf die die Benutzer zugreifen sollen. Dann fügen Sie dieses Benutzersteuerelement zur Liste der Steuerelemente des Aktionsbereichs hinzu, sodass es im Arbeitsbereich bei Word oder Excel angezeigt wird. Der folgende Code fügt ein Benutzersteuerelement namens CalendarControl zur Liste der Steuerelemente hinzu, die dem Objekt ActionsPane zugeordnet sind.

Visual Basic

Me.ActionsPane.Controls.Add(New CalendarControl)

C#

this.ActionsPane.Controls.Add(new CalendarControl());

Aktionsbereiche in Office 2003 sind je einem Dokument bzw. einer Arbeitsmappe zugeordnet. Sie können einen Aktionsbereich beliebig vielen Dokumenten hinzufügen. Fügen Sie einfach allen Dokumenten bzw. Arbeitsmappen Anpassungs-Assemblys an, und integrieren Sie Code wie oben gezeigt in die Anpassung.

In Microsoft Office 2007 ist das Modell für benutzerdefinierte Aufgabenbereiche erweitert. Benutzerdefinierte Aufgabenbereiche stehen jetzt sowohl auf Anwendungsebene als auch auf Dokumentebene zur Verfügung. Sie können einen benutzerdefinierten Aufgabenbereich auf Anwendungsebene erstellen, der Benutzer unabhängig vom geöffneten Dokument unterstützen kann. Beispielsweise könnten Sie einen benutzerdefinierten Bereich erstellen, in dem Benutzer ein örtlich zuständiges Büro wählen und die aktuelle Zeit in diesem Büro in gerade geöffnete Dokumente, Arbeitsmappen oder Folien integrieren können.

Eine weitere Verbesserung der benutzerdefinierten Arbeitsbereiche ist die Tatsache, dass mehrere zeitgleich geöffnet werden können.

Damit Ihnen die Arbeit mit diesen neuen benutzerdefinierten Aufgabenbereichen leichter fällt, wurde von Visual Studio Tools für Office der Toolsatz Microsoft Visual Studio 2005 Tools für das Microsoft Office System 2007 herausgebracht (auch als Visual Studio 2005 Tools for Office Second Edition bekannt).

Benutzerdefinierte Arbeitsbereiche werden von den folgenden Anwendungen unterstützt:

  • Microsoft Office Access 2007

  • Microsoft Office Excel 2007

  • Microsoft Office InfoPath 2007

  • Microsoft Office Outlook 2007

  • Microsoft Office PowerPoint 2007

  • Microsoft Office Word 2007

Hinweis:
Aufgabenbereiche sind auch für Access 2007 verfügbar, doch Visual Studio 2005 Tools for Office Second Edition umfasst keine Tools zur Erstellung von Aufgabenbereichen in Access.

 

Erstellen benutzerdefinierter Aufgabenbereiche mit Visual Studio Tools for Office Second Edition

Diese Übung führt Sie durch das Erstellen eines Add-Ins für Word 2007. Das Add-In umfasst einen benutzerdefinierten Aufgabenbereich, der Benutzern die Möglichkeit gibt, ein Datum über ein Kalendersteuerelement auszuwählen und dann in ein Dokument einzufügen.

So erstellen Sie ein Add-In-Projekt für Word

  1. Starten Sie Microsoft Visual Studio 2005.

  2. Wählen Sie im Menü Datei die Option Neu, und klicken Sie auf Projekt.

  3. Erweitern Sie im Dialogfeld Neues Projekt die Knoten Visual Basic oder Visual C#, um einen Einblick in die Projekttypen zu erhalten. Erweitern Sie anschließend den Knoten Office, und wählen Sie 2007 Add-Ins.

  4. Wählen Sie im Bereich Vorlagen Word Add-In.

  5. Geben Sie in das Feld Name den Text VSTOWordAddIn ein, und klicken Sie auf OK.

  6. Wenn Sie Visual Basic verwenden, klicken Sie im Projektmappen-Explorer auf Alle Dateien anzeigen.

  7. Erweitern Sie im Projektmappen-Explorer den Knoten Verweise.

Sie werden feststellen, dass Visual Studio dem Projekt mehrere Verweise mit Bezug zu Office hinzugefügt hat. Diese umfassen Microsoft.Office.Core, einen Verweis auf die Objektbibliothek Microsoft Office 12.0, und Word, einen Verweis auf die Objektbibliothek Microsoft Word 12.0.

Fügen Sie dem Projekt als Nächstes ein benutzerdefiniertes Benutzersteuerelement hinzu. Dieses Steuerelement enthält auch ein Kalendersteuerelement und wird im benutzerdefinierten Aufgabenbereich angezeigt. Schreiben Sie Code, über den das gerade im Kalender ausgewählte Datum in das Dokument eingefügt wird.

So erstellen Sie ein Benutzersteuerelement für den benutzerdefinierten Aufgabenbereich

  1. Klicken Sie im Menü Projekt auf die Option Neues Element hinzufügen.

  2. Wählen Sie im Dialogfeld Neues Element hinzufügen die Option Benutzersteuerelement.

  3. Geben Sie in das Feld Name den Text CalendarControl ein, und klicken Sie auf Hinzufügen.

  4. Legen Sie die Werte für Breite und Höhe des Benutzersteuerelements auf 200. Ziehen Sie aus der Toolbox ein MonthCalendar-Steuerelement auf das Benutzersteuerelement. Platzieren Sie das Steuerelement MonthCalendar oben links im Benutzersteuerelement.

  5. Erweitern Sie im Fenster Eigenschaften die Eigenschaft Ausrichtung für das Steuerelement MonthCalendar. Setzen Sie die Werte für X und Y auf 9.

  6. Setzen Sie die Eigenschaft MaxSelectionCount auf 1; so kann der Benutzer jeweils nur ein Datum und nicht mehrere auswählen.

  7. Ziehen Sie aus der Toolbox ein Schaltflächen-Steuerelement auf das Benutzersteuerelement. Platzieren Sie das Schaltflächen-Steuerelement unterhalb des Kalender-Steuerelements.

  8. Ändern Sie die Eigenschaft Text der Schaltfläche auf Insert date. Erweitern Sie die Schaltfläche, sodass der Text einsehbar ist, und zentrieren Sie die Schaltfläche horizontal im Benutzersteuerelement.

  9. Doppelklicken Sie auf die Schaltfläche, um den Code-Editor zu öffnen.

    Wenn Sie C# verwenden, fügen Sie die folgende Anweisung am Anfang der Code-Datei hinzu. (Visual Basic importiert diese Bibliothek automatisch, sodass keine explizite Importanweisung erforderlich ist.)

    C#

    using Word = Microsoft.Office.Interop.Word;
    
  1. Fügen Sie die folgende Deklaration hinzu.

    Visual Basic

    Private myRange As Word.Range
    
C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">private Word.Range myRange = null;
  1. Fügen Sie zum Ereignishandler für das Klicken der Schaltfläche den folgenden Code hinzu, um das ausgewählte Datum in das aktive Word-Dokument einzufügen. ActiveDocument.Content ist ein Objekt des Typs Bereich, das für das Hauptdokument steht.

    Visual Basic

myRange = Globals.ThisAddIn.Application.ActiveDocument.Content Try myRange.InsertAfter( _ MonthCalendar1.SelectionStart.ToShortDateString) Catch MessageBox.Show( "The information could not be added to the document") End Try

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

myRange = Globals.ThisAddIn.Application.ActiveDocument.Content; try { myRange.InsertAfter( monthCalendar1.SelectionStart.ToShortDateString()); } catch { MessageBox.Show( "The information could not be added to the document"); }

In diesem Beispiel haben Sie das Benutzersteuerelement dem Projekt hinzugefügt. Sie können ebenso ein Windows-Steuerelementbibliothek-Projekt für das Benutzersteuerelement erstellen. Damit können Sie das Steuerelement einmal erstellen und es in verschiedenen Projekten verwenden. Falls es erforderlich wird, später Änderungen vorzunehmen, müssen diese nur an einer Stelle vorgenommen werden.

Damit der Aufgabenbereich automatisch angezeigt wird,

  1. klicken Sie im Kontextmenü des Projektmappen-Explorers mit der rechten Maustaste auf ThisAddin und dann auf Code anzeigen.

  2. Fügen Sie die folgende Deklaration hinzu.

    Visual Basic

    Private ctpCalendar As Microsoft.Office.Tools.CustomTaskPane
    
C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">private Microsoft.Office.Tools.CustomTaskPane ctpCalendar = null;
  1. Fügen Sie folgenden Code zum Starter-Ereignishandler hinzu, um das Kalender-Steuerelement in einem benutzerdefinierten Aufgabenbereich anzuzeigen. Der Code erstellt einen neuen benutzerdefinierten Aufgabenbereich und fügt diesen den benutzerdefinierten Aufgabenbereichen zu, die zu diesem Add-In gehörend. Für die Add-Methode in diesem Beispiel werden zwei Parameter benötigt: ein Steuerelement, das dem benutzerdefinierten Aufgabenbereich hinzugefügt wird, und der Titel, der im Aufgabenbereich angezeigt wird.

    Standardmäßig zeigen die Microsoft Office-Anwendungen den benutzerdefinierten Aufgabenbereich nicht an. Damit der Aufgabenbereich angezeigt wird, muss die Eigenschaft Sichtbar auf True eingestellt werden.

    Visual Basic

ctpCalendar = Me.CustomTaskPanes.Add(New CalendarControl(), _ "Select a date") ctpCalendar.Visible = True

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

ctpCalendar = this.CustomTaskPanes.Add(new CalendarControl(), "Select a date"); ctpCalendar.Visible = true;

  1. Fügen Sie folgenden Code zum Ereignishandler Herunterfahren hinzu, um den benutzerdefinierten Aufgabenbereich aus der Auflistung der benutzerdefinierten Aufgabenbereiche im Add-In zu entfernen.

    Visual Basic

Me.CustomTaskPanes.Remove(ctpCalendar)

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

this.CustomTaskPanes.Remove(ctpCalendar);

  1. Klicken Sie im Menü Datei auf die Option Alle speichern.

  2. Klicken Sie im Menü Erstellen auf die Option Projektmappe erstellen und überprüfen Sie, ob das Projekt korrekt kompiliert.

  3. **Starten Sie die Anwendung mit der Taste ** F5 .

    Der benutzerdefinierte Aufgabenbereich ist an den rechten Rand des Dokuments angedockt. Der Titel des Aufgabenbereichs lautet Datum auswählen. Der Aufgabenbereich enthält ein Kalender-Steuerelement und eine Schaltfläche Datum einfügen.

    Abbildung 1: Ein Kalender-Steuerelement in einem benutzerdefinierten Aufgabenbereich
    Abbildung 1: Ein Kalender-Steuerelement in einem benutzerdefinierten Aufgabenbereich

  4. Wählen Sie ein Datum aus dem Kalender-Steuerelement, und klicken Sie auf Datum einfügen.

    Das Datum wird im Format MM/TT/JJJJ in das Dokument eingefügt.

  5. Beenden Sie Word.

Sie können Ihre Kenntnisse als Visual Studio-Entwickler in die Office-Entwicklung einbringen. Sie können bestehende Benutzeroberflächenelemente, Codes und Techniken wieder verwenden. Sie können Steuerelemente aus Windows Form in ein Benutzersteuerelement für die Verwendung in einem benutzerdefinierten Aufgabenbereich kopieren. Um ein bestehendes Benutzersteuerelement zu verwenden, müssen Sie dieses Steuerelement lediglich zu Ihrem Projekt hinzufügen. Sie schreiben dann den Code, um mit den verschiedenen Office-Anwendungen zu interagieren. Sie rufen diesen Code von demselben Ereignishandler auf, mit dem Sie in den Windows-Anwendungen arbeiten.

 

Nutzen der Multifunktionsleiste für das Anzeigen benutzerdefinierter Aufgabenbereiche

Das Dokument 2007 Office System: UI-Richtlinien für Lösungen und Add-Ins (möglicherweise in englischer Sprache), das für den Download verfügbar ist, bietet folgende Anleitung:

„Aufgabenbereiche oder -dialogfelder werden nicht automatisch im geöffneten Dokument angezeigt. Ausschließlich durch Benutzeraktionen können Aufgabenbereiche und -dialogfelder geöffnet werden. Idealerweise können sämtliche Aufgabenbereiche mit einer Schaltfläche der Multifunktionsleiste geöffnet werden.“

Dies ist ein guter Rat für Office 2003-Lösungen und ist für Lösungen, die 2007 Microsoft Office System-Anwendungen verwenden, sogar noch sinnvoller, da mehrere Aufgabenbereiche gleichzeitig angezeigt werden können. Stellen Sie sich vor, dass ein Benutzer drei Add-Ins herunterlädt, von denen jedes zwei benutzerdefinierte Aufgabenbereiche erstellt. Beim Öffnen eines Dokuments oder einer Arbeitsmappe ist die Anzeige von sechs Aufgabenbereichen sicherlich nicht erwünscht.

Es ist eine bessere Lösung, dem Benutzer die Möglichkeit zu bieten, Aufgabenbereiche bei Bedarf anzuzeigen oder sie auszublenden, wenn sie nicht benötigt werden. Diese Übung zeigt, wie eine Registerkarte zur Multifunktionsleisten-Benutzeroberfläche hinzugefügt wird. Die Registerkarte enthält eine Schaltfläche zum Öffnen und Schließen des Aufgabenbereichs, den Sie zuvor erstellt haben.

Derzeit befindet sich der Code zum Anzeigen des benutzerdefinierten Aufgabenbereichs im Starter-Ereignishandler. Daher wird der Aufgabenbereich automatisch angezeigt, wenn der Add-In ausgeführt wird. Erstellen Sie zunächst Methoden zum Hinzufügen und entfernen Sie den benutzerdefinierten Aufgabenbereich. Dann schreiben Sie den Code, um diese Methoden aufzurufen, wenn der Benutzer eine Schaltfläche der Multifunktionsleiste anklickt.

So wird der Aufgabenbereich in Abhängigkeit von einer Benutzeraktion angezeigt

  1. Kehren Sie in Visual Studio zur Codedatei ThisAddin zurück.

  2. Erstellen Sie eine Methode mit dem Namen AddCalendarTaskPane, um den benutzerdefinierten Aufgabenbereich zu erstellen. Verschieben Sie den Code im Starter-Ereignishandler in diese Methode, und fügen Sie den Code fett formatiert hinzu, damit der benutzerdefinierte Aufgabenbereich nicht rechts sondern links angedockt wird.

    Visual Basic

Public Sub AddCalendarTaskPane() ctpCalendar = Me.CustomTaskPanes.Add(New CalendarControl(), _ "Select a date") ctpCalendar.DockPosition = _ Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionLeft ctpCalendar.Visible = True End Sub

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

public void AddCalendarTaskPane() { ctpCalendar = this.CustomTaskPanes.Add(new CalendarControl(), "Select a date"); ctpCalendar.DockPosition = Microsoft.Office.Core. MsoCTPDockPosition.msoCTPDockPositionLeft; ctpCalendar.Visible = true; }

  1. Erstellen Sie die folgende Methode, um den benutzerdefinierten Aufgabenbereich zu entfernen.

    Visual Basic

Public Sub RemoveCalendarTaskPane() Me.CustomTaskPanes.Remove(ctpCalendar) End Sub

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

public void RemoveCalendarTaskPane() { this.CustomTaskPanes.Remove(ctpCalendar); }

  1. Ändern Sie den Code im Ereignishandler Herunterfahren wie folgt.

    Visual Basic

RemoveCalendarTaskPane()

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">RemoveCalendarTaskPane();

Mit der Multifunktionsleisten-UI-Funktion wird das vorherige 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. Sie können die Multifunktionsleisten-Benutzeroberfläche mit XML anpassen und dann den Code schreiben, um auf Benutzeraktionen zu reagieren.

Hinweis:
Der Artikel Anpassen der Multifunktionsleisten-Benutzeroberfläche von Office (2007) für Entwickler (Teil 1 von 2) (möglicherweise in englischer Sprache) enthält eine detaillierte Erläuterung der Szenarios für die Multifunktionsleiste und Anpassung.

Visual Studio 2005 Tools for Office Second Edition enthält die Vorlage für das Unterstützungselement der Multifunktionsleiste. Dies ist eine Klasse zur Anpassung der Multifunktionsleiste mit XML. Nachdem Sie dieses Element einem Projekt hinzugefügt haben, können Sie das erstellte XML anpassen, um Ihre eigenen Registerkarten und Schaltflächen der Multifunktionsleiste hinzuzufügen. Sie können ebenso den von Visual Studio erstellten Klassencode anpassen, um die Anforderungen Ihrer Lösung zu erfüllen.

Zur Anpassung der Multifunktionsleiste

  1. Klicken Sie im Menü Projekt auf die Option Neues Element hinzufügen.

  2. im Dialogfeld Neues Element hinzufügen wählen Sie Unterstützung Multifunktionsleiste, und klicken Sie dann auf Hinzufügen.

    Es werden zwei Dateien zum Projekt hinzugefügt. Ribbon1.vb oder Ribbon1.cs definiert die Ribbon1-Klasse, und Ribbon1.xml enthält eine XML-Anpassung für die Multifunktionsleiste.

  3. Klicken Sie mit der rechten Maustaste im Projektmappen-Explorer auf Ribbon1.xml, und klicken Sie dann auf Öffnen.

    Beim XML in dieser Datei handelt es sich um Folgendes: Dieses XML ist eine Vorlage zur Anpassung der Multifunktionsleiste.

    Xml

<customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad"> <ribbon> <tabs> <tab id="MyTab" label="My Tab"> <group id="MyGroup" label="My Group"> <toggleButton id="toggleButton1" size="large" label="My Button" screentip="My Button Screentip" onAction="OnToggleButton1" imageMso="HappyFace" /> </group> </tab> </tabs> </ribbon> </customUI>

  1. Ändern Sie das XML der Datei wie folgt: Dieses XML erstellt eine neue Registerkarte mit der Bezeichnung VSTO Add-Ins. Das XML definiert dann auf der neuen Registerkarte eine Gruppe mit der Bezeichnung Hilfen. Die Gruppe enthält eine Schaltfläche mit der Beschriftung Datum einfügen und das Bild eines Kalenders. Wenn der Benutzer auf die Schaltfläche klickt, wird der in der Methode CalendarButtonClick enthaltende Code ausgeführt.

    Xml

<customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad"> <ribbon> <tabs> <tab id="VSTOAddIns" label="VSTO Add-ins" > <group id="Group1" label="Helpers" visible ="1"> <button id="Calendar" label="Insert date" onAction="CalendarButtonClick" imageMso="ContentControlDate"/> </group> </tab> </tabs> </ribbon> </customUI>

  1. Entfernen Sie in der Codedatei Ribbon1 den Kommentar aus folgendem Code.

    Visual Basic

Partial Public Class ThisAddIn

Private ribbon As Ribbon1

Protected Overrides Function RequestService(ByVal serviceGuid As Guid) As Object
    If serviceGuid = GetType(Office.IRibbonExtensibility).GUID Then
        If ribbon Is Nothing Then
            ribbon = New Ribbon1()
        End If
        Return ribbon
    End If

    Return MyBase.RequestService(serviceGuid)
End Function

End Class

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

public partial class ThisAddIn { private Ribbon1 ribbon; protected override object RequestService(Guid serviceGuid) { if (serviceGuid == typeof(Office.IRibbonExtensibility).GUID) { if (ribbon == null) ribbon = new Ribbon1(); return ribbon; }

    return base.RequestService(serviceGuid);
}

}

Wenn Ihr Add-In geladen wird, wird es von Office abgefragt, um zu überprüfen, ob es die Benutzeroberfläche **IRibbonExtensibility** unterstützt. Die Aufgabe des obigen Codes besteht darin, auf die Anfrage zu reagieren und das Objekt zur Implementierung dieser Schnittstelle an Office zurückzugeben. Dieses Objekt gehört zur Klasse **Ribbon1**.

Visual Basic

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

<ComVisible(True)> _ Public Class Ribbon1 Implements Office.IRibbonExtensibility

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

[ComVisible(true)] public class Ribbon1 : Office.IRibbonExtensibility

Office ruft dann die Methode **GetCustomUI** der Klasse **Ribbon1** auf. Diese Methode gibt das XML zurück, das die Anpassung der Multifunktionsleiste enthält.

Visual Basic

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

Public Function GetCustomUI(ByVal ribbonID As String) As String _ Implements Office.IRibbonExtensibility.GetCustomUI Return GetResourceText("VSTOWordAddIn.Ribbon1.xml") End Function

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

public string GetCustomUI(string ribbonID) { return GetResourceText("VSTOWordAddIn.Ribbon1.xml"); }

Die Eigenschaft **Buildvorgang** für die XML-Datei ist auf **Eingebettete Ressource** eingestellt. Visual Studio baut die XML-Datei in die Add-In-Assembly. Die Methode **GetResourceText** ruft das XML und die Methode **GetCustomUI** ab und gibt das XML an Office zurück.

folgenden Schritte zeigen die Anwendung des Ressourcen-Designers als ein alternatives Vorgehen beim Hinzufügen von Ressourcen zu dem Projekt. Dadurch werden stark typisierte Ressourcen erstellt, auf die über **My.Resources** in Visual Basic oder **Properties.Resources** in Visual C\# zugegriffen werden kann.
  1. Klicken Sie im Menü Projekt auf VSTOWordAddIn Properties.

    Der Projekt-Designer wird geöffnet.

  2. Klicken Sie auf die Registerkarte Ressourcen.

  3. Klicken Sie zunächst auf den mit der Schaltfläche Ressource hinzufügen verknüpften Pfeil und dann auf Vorhandene Datei hinzufügen.

  4. Navigieren Sie im Dialogfeld Vorhandene Datei zu Ressourcen hinzufügen zum aktuellen Projektordner.

  5. Wählen Sie zunächst Ribbon1.xml aus, und klicken Sie dann auf Öffnen.

  6. Schließen Sie den Projekt-Designer, und speichern Sie Ihre Änderungen, wenn Sie dazu aufgefordert warden.

  7. Ändern Sie den Code in der Datei Ribbon1 in der Methode GetCustomUI wie folgt, um die XML-Anpassung der Multifunktionsleiste abzurufen und zurückzugeben.

    Visual Basic

    Return My.Resources.Ribbon1
    
C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">Return Properties.Resources.Ribbon1;
  1. Löschen Sie die Methode GetResourceText. Sie haben den Aufruf für diese Methode mit dem obigen Code ersetzt und benötigen sie nicht mehr.

Sie haben in der Datei Ribbon1.xml angegeben, dass der Code in der Methode CalendarButtonClick aufgerufen werden soll, wenn der Benutzer die Schaltfläche Kundeninformation anklickt.

Xml

onAction="CalendarButtonClick"

Als abschließenden Schritt fügen Sie diese Methode hinzu.

So reagieren Sie auf das Klicken von Benutzern auf eine Schaltfläche der Multifunktionsleiste

  1. Suchen Sie im Bereich Rückrufe Multifunktionsleiste die Methode OnToggleButton1, und löschen Sie sie. Die zuvor von Ihnen ersetzte Vorlage „Multifunktionsleisten-XML“ bezieht sich auf diese Methode. Sie benötigen diese Methode nicht mehr.

  2. Fügen Sie die folgende Deklaration zur Klasse Ribbon1 hinzu.

    Visual Basic

    Private calendarControlExists As Boolean
    
C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">private bool calendarControlExists;
  1. Fügen Sie die folgende Methode zur Klasse Ribbon1 hinzu, um reagieren zu können, wenn der Benutzer in der Multifunktionsleiste die Schaltfläche Datum einfügen anklickt. Dieser Code überprüft, ob der benutzerdefinierte Aufgabenbereich vorhanden ist. Ist dies der Fall, ruft der Code die Methode auf, um den Aufgabenbereich zu entfernen. Ist er nicht vorhanden, ruft der Code die Methode auf, um den Aufgabenbereich hinzuzufügen.

    Visual Basic

Public Sub CalendarButtonClick(ByVal control As _ Office.IRibbonControl) If Not calendarControlExists Then Globals.ThisAddIn.AddCalendarTaskPane() Else Globals.ThisAddIn.RemoveCalendarTaskPane() End If calendarControlExists = Not calendarControlExists End Sub

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

public void CalendarButtonClick(Office.IRibbonControl control) if (!calendarControlExists) { Globals.ThisAddIn.AddCalendarTaskPane(); } else { Globals.ThisAddIn.RemoveCalendarTaskPane(); } calendarControlExists = !calendarControlExists;

**Hinweis:**  
Eine alternative Vorgehensweise besteht darin, den benutzerdefinierten Aufgabenbereich zu erstellen, diesen jedoch nicht anzuzeigen, wenn Word gestartet wird. Sie können dann die Eigenschaft „Sichtbar“ ändern, wenn der Benutzer die Schaltfläche in der Multifunktionsleiste anklickt, um den Aufgabenbereich anzuzeigen oder auszublenden. Diese Vorgehensweise wird in der nächsten Übung gezeigt.
  1. Klicken Sie im Menü Datei auf die Option Alle speichern.

  2. Klicken Sie im Menü Erstellen auf die Option Projektmappe erstellen und überprüfen Sie, ob das Projekt korrekt kompiliert.

  3. Starten Sie die Anwendung mit der Taste F5.

    Der Aufgabenbereich ist nicht sichtbar. Auf der Multifunktionsleiste befindet sich eine Registerkarte VSTO Add-Ins.

  4. Klicken Sie auf die Registerkarte VSTO Add-Ins.

    Die Registerkarte enthält die Schaltfläche Datum einfügen mit einem Kalendersymbol.

    Abbildung 2: Durch Anklicken der Schaltfläche wird der benutzerdefinierte Aufgabenbereich „Datum auswählen“ angezeigt
    Abbildung 2: Durch Anklicken der Schaltfläche wird der benutzerdefinierte Aufgabenbereich „Datum auswählen“ angezeigt

  5. Klicken Sie auf Datum einfügen.

    Der benutzerdefinierte Aufgabenbereich wird links im Dokument angedockt angezeigt.

  6. Wählen Sie ein Datum im Kalendersteuerelement aus, und klicken Sie dann auf Datum einfügen.

    Das Datum wird im Format MM/TT/JJJJ in das Dokument eingefügt.

  7. Klicken Sie auf Datum einfügen.

    Der Aufgabenbereich wird nicht mehr angezeigt.

  8. Beenden Sie Word.

In der ersten Übung haben Sie ein Add-In erstellt, das einen benutzerdefinierten Aufgabenbereich mit einem Kalendersteuerelement anzeigt. Der Benutzer kann ein Datum aus dem Kalender auswählen und in das Worddokument einfügen. Sie haben einen Code geschrieben, um den Aufgabenbereich anzeigen zu lassen, wenn Word gestartet wird. In dieser Übung haben Sie – gemäß den Empfehlungen von Microsoft Office 2007 für Benutzeroberflächen – die Multifunktionsleiste angepasst, damit Benutzer den Aufgabenbereich mit einem Klick auf eine Schaltfläche anzeigen oder ausblenden können.

 

Erstellen datengebundener benutzerdefinierter Aufgabenbereiche

Diese Übung zeigt, wie ein zweites Steuerelement für den Aufgabenbereich erstellt wird. Das Steuerelement ruft eine Liste der Kunden aus einer Datenbank ab und zeigt sie in einem Raster an. Der Benutzer kann einen Kunden auswählen und eine Schaltfläche anklicken. Der Code, der ausgeführt wird, fügt die Kundeninformationen in das aktive Worddokument ein. Die Übung umfasst eine Schaltfläche in der Multifunktionsleiste, um diesen benutzerdefinierten Aufgabenbereich anzuzeigen.

Hinweis:
Diese Übung verwendet die Microsoft SQL Server 2005 Express Edition und die Beispieldatenbank Northwind. Sie können die Beispieldatenbanken Northwind und Pubs für SQL Server 2000 von der Microsoft Download Center-Website herunterladen.

So fügen Sie eine Datenquelle hinzu

  • Klicken Sie im Menü Daten auf die Option Neue Datenquelle hinzufügen.

    Der Assistent zum Konfigurieren von Datenquellen wird angezeigt.

  • Wählen Sie auf der ersten Seite Datenbank aus, um anzugeben, wo die Anwendung die dazugehörigen Daten abrufen soll. Klicken Sie auf Weiter.

  • Klicken Sie auf der zweiten Seite auf Neue Verbindung.

    Das Dialogfeld Verbindung hinzufügen wird angezeigt.

  • Wenn das Feld Datenquelle nicht Microsoft SQL Server-Datenbankdatei (SqlClient) anzeigt, klicken Sie auf Ändern.

    Das Dialogfeld Datenquelle ändern wird angezeigt.

    1. Wählen Sie Microsoft SQL Server-Datenbankdatei aus.

    2. Klicken Sie auf OK.

  • Klicken Sie im Dialogfeld Verbindung hinzufügen auf die Option Durchsuchen.

    Das Dialogfeld SQL Server-Datenbankdatei auswählen wird angezeigt.

  • Navigieren Sie zu dem Ordner, der die Northwind-Datenbankdatei enthält. Wählen Sie Northwind.mdf aus. Klicken Sie auf Öffnen.

  • Klicken Sie im Dialogfeld Verbindung hinzufügen auf die Option Verbindung testen. Nach erfolgter Verbindung klicken Sie auf OK.

  • Klicken Sie auf OK, um das Dialogfeld Verbindung hinzufügen zu schließen.

  • Klicken Sie im Assistent zum Konfigurieren von Datenquellen auf die Option Weiter.

  • Klicken Sie auf Nein, wenn Sie in der Meldung gefragt werden, ob die Datenbankdatei in Ihrem Projekt aufgenommen werden soll.

  • Behalten Sie die Markierung des Kontrollkästchens auf der dritten Seite bei, und klicken Sie auf Weiter.

  • Erweitern Sie auf der vierten Seite die Liste Tabellen.

  • Markieren Sie in der Liste der Tabellen das Kontrollkästchen Kunden.

  • Klicken Sie auf Fertig stellen.

  • Klicken Sie im Menü Daten auf die Option Datenquellen anzeigen.

    Das Fenster Datenquellen wird angezeigt.

Erstellen Sie als Nächstes einen benutzerdefinierten Aufgabenbereich, der eine Kundenliste angezeigt.

So erstellen Sie ein Benutzersteuerelement mit einem datengebundenen Datenraster

  1. Klicken Sie im Menü Projekt auf die Option Neues Element hinzufügen.

  2. Wählen Sie im Dialogfeld Neues Element hinzufügen die Option Benutzersteuerelement.

  3. Geben Sie CustomersControl in das Feld Name ein, und klicken Sie dann auf Hinzufügen.

  4. Ziehen Sie vom Fenster Datenquellen die Tabelle Kunden in das Benutzersteuerelement.

  5. Löschen Sie das Steuerelement CustomersBindingNavigator. Das ist die Toolleiste über dem Datenraster.

    Die Toolleiste bietet die Möglichkeit, von Kunde zu Kunde zu navigieren sowie die Möglichkeit einen Kunden hinzuzufügen, zu speichern oder zu löschen. In diesem Beispiel setzen Sie keine der Funktionalitäten ein und benötigen daher die Toolleiste nicht.

  6. Ziehen Sie das Datenraster im Benutzersteuerelement nach links oben.

  7. Klicken Sie auf den Pfeil, der im Datenraster rechts oben angezeigt wird.

    Das Menü DataGridView Tasks wird angezeigt.

  8. Löschen Sie die Kontrollkästchen für Hinzufügen aktivieren, Bearbeiten aktivieren und Löschen aktivieren. Der Benutzer kann einen Kunden aus der Liste auswählen, hat jedoch nicht die Möglichkeit, die Liste der Kunden zu ändern.

  9. Klicken Sie auf Spalten bearbeiten.

  10. Wählen Sie in der Liste Ausgewählte Spalten die Option CustomerID.

  11. Klicken Sie auf Entfernen.

  12. Entfernen Sie alle verbleibenden Spalten außer der Spalte CompanyName.

  13. Stellen Sie die Eigenschaft Breite der Spalte CompanyName auf 180 ein.

  14. Ändern Sie die Eigenschaft HeaderText zu Kunden.

  15. Klicken Sie auf OK.

So erstellen Sie das Benutzersteuerelement

  • Klicken Sie auf das Datenraster, um es auszuwählen.

  • Stellen Sie die Eigenschaft RowHeadersVisible im Datenraster auf Falsch ein.

  • Stellen Sie die Eigenschaft Breite im Datenraster auf 194 ein.

  • Stellen Sie die Eigenschaft Höhe auf 365 ein.

  • Klicken Sie auf das Benutzersteuerelement, um es auszuwählen.

  • Stellen Sie die Eigenschaft Breite des Benutzersteuerelements auf 200 ein.

  • Stellen Sie die Eigenschaft Höhe auf 400 ein..

  • Ziehen Sie aus der Toolbox ein Schaltflächen-Steuerelement auf das Benutzersteuerelement. Platzieren Sie das Schaltflächensteuerelement unter dem Raster. Zentrieren Sie die Schaltfläche im Benutzersteuerelement horizontal.

  • Ändern Sie die Eigenschaft Text der Schaltfläche auf Kundeninformationen einfügen. Erweitern Sie die Schaltfläche, bis der Text sichtbar ist.

So fügen Sie den Code zum Einfügen von Daten in das Dokument hinzu

  1. Doppelklicken Sie in einen leeren Bereich des Benutzersteuerelements, um den Code-Editor zu öffnen.

  2. Löschen Sie die Methode CustomersBindingNavigatorSaveItem_Click.

    Visual Studio fügte diese Methode hinzu, um das von Ihnen gelöschte Klickereignis der Schaltfläche Speichern in der Toolleiste zu handhaben. Sie benötigen diesen Code nicht.

  3. Fügen Sie den folgenden Code oben zur Code-Datei hinzu.

    Visual Basic

    Imports System.Text
    
C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">using Word = Microsoft.Office.Interop.Word;
  1. Fügen Sie die folgenden Deklarationen hinzu.

    Visual Basic

Private myRange As Word.Range Private customerInfo As StringBuilder Private customerRow As NorthwindDataSet.CustomersRow

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

private Word.Range myRange = null; private StringBuilder customerInfo = null; private NorthwindDataSet.CustomersRow customerRow;

  1. Fügen Sie den folgenden Code zum Ladeereignishandler des Benutzersteuerelements hinzu, um die Kundeninformationen aus der Datenbank abzurufen.

    Visual Basic

    Me.CustomersTableAdapter.Fill(Me.NorthwindDataSet.Customers)
    
C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">this.customersTableAdapter.Fill(this.northwindDataSet.Customers);
  1. Fügen Sie den folgenden Code zum Klickereignishandler der Schaltfläche hinzu, um die ausgewählten Kundeninformationen in das aktuelle Worddokument einzufügen. Dieser Code ruft zunächst einen Verweis auf das Bereichsobjekt ab, das das Hauptdokument darstellt. Dann wird ein Verweis zu den zugrunde liegenden Daten für den ausgewählten Kunden abgerufen.

    Visual Basic

myRange = Globals.ThisAddIn.Application.ActiveDocument.Content customerRow = CType(CType( _ Me.CustomersBindingSource.Current, DataRowView).Row, _ NorthwindDataSet.CustomersRow)

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

myRange = Globals.ThisAddIn.Application.ActiveDocument.Content; customerRow = ((NorthwindDataSet.CustomersRow) (((DataRowView)(this.customersBindingSource.Current)).Row));

  1. Fügen Sie den folgenden Code hinzu, um die ausgewählten Kundeninformationen in das aktuelle Worddokument einzufügen. Dieser Code stellt eine Zeichenfolge mit dem Firmennamen des Kunden, dem Namen des primären Kontakts sowie die Kundenadresse her. Achten Sie auf die Verwendung der Methoden, wie zum Beispiel IsContactNameNull, um zu bestimmen, ob die verschiedenen Kundentabellenspalten Informationen enthalten.

    Der Code fügt dann die Zeichenfolge mit den Kundeninformationen in das aktuelle Dokument ein.

    Visual Basic

customerInfo = New StringBuilder() If customerRow.IsContactNameNull() = False Then customerInfo.AppendLine(customerRow.ContactName) End If

customerInfo.AppendLine(customerRow.CompanyName) If customerRow.IsAddressNull() = False Then customerInfo.AppendLine(customerRow.Address) End If

If customerRow.IsCityNull() = False Then customerInfo.Append(customerRow.City & " ") End If

If customerRow.Is_RegionNull() = False Then customerInfo.Append(customerRow._Region & " ") End If

If customerRow.IsPostalCodeNull() = False Then customerInfo.Append(customerRow.PostalCode) End If

customerInfo.AppendLine() If customerRow.IsCountryNull() = False Then customerInfo.AppendLine(customerRow.Country) End If

customerInfo.AppendLine() Try myRange.InsertAfter(customerInfo.ToString()) Catch ex As Exception MessageBox.Show( _ "The information could not be added to the document.") End Try

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

customerInfo = new StringBuilder(); if (customerRow.IsContactNameNull()==false) { customerInfo.AppendLine(customerRow.ContactName); } customerInfo.AppendLine(customerRow.CompanyName); if (customerRow.IsAddressNull()==false) { customerInfo.AppendLine(customerRow.Address); } if (customerRow.IsCityNull()==false) { customerInfo.Append(customerRow.City + " "); } if (customerRow.IsRegionNull()==false) { customerInfo.Append(customerRow.Region + " "); } if (customerRow.IsPostalCodeNull()==false) { customerInfo.Append(customerRow.PostalCode); } customerInfo.AppendLine(); if (customerRow.IsCountryNull()==false) { customerInfo.AppendLine(customerRow.Country); } customerInfo.AppendLine();

try { myRange.InsertAfter(customerInfo.ToString()); } catch { MessageBox.Show( "The information could not be added to the document."); }

In der vorherigen Übung haben Sie den benutzerdefinierten Aufgabenbereich durch Klicken des Benutzers auf eine Schaltfläche der Multifunktionsleiste hinzugefügt und entfernt. Der benutzerdefinierte Aufgabenbereich enthält ein Kalendersteuerelement und daher ist der Aufwand für das wiederholte Erstellen und Löschen des Aufgabenbereichs nicht groß. In dieser Übung ruft der benutzerdefinierte Aufgabenbereich Information von einer Datenbank ab. Zum Einsparen von Ressourcen sollte der Datenbankaufruf nur einmal erfolgen. Daher wird der benutzerdefinierte Aufgabenbereich hinzugefügt, wenn das Add-In gestartet wird. Es ist jedoch erst dann sichtbar, wenn der Benutzer auf eine Schaltfläche auf der Multifunktionsleiste klickt. Ein erneutes Anklicken der Schaltfläche blendet den Aufgabenbereich aus, entfernt ihn allerdings nicht.

So wird der Aufgabenbereich in Abhängigkeit von einer Benutzeraktion angezeigt

  1. Kehren Sie zur Datei ThisAddIn zurück.

  2. Fügen Sie die folgende Deklaration hinzu.

    Visual Basic

    Public ctpCustomers As Microsoft.Office.Tools.CustomTaskPane
    
C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">public Microsoft.Office.Tools.CustomTaskPane ctpCustomers = null;
  1. Fügen Sie die folgenden Methoden hinzu, um den benutzerdefinierten Aufgabenbereich hinzuzufügen oder zu entfernen.

    Visual Basic

Public Sub AddCustomersTaskPane() ctpCustomers = Me.CustomTaskPanes.Add(New CustomersControl(), _ "Select a customer") ctpCustomers.DockPosition = _ Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionLeft End Sub

Public Sub RemoveCustomersTaskPane() Me.CustomTaskPanes.Remove(ctpCustomers) End Sub

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

public void AddCustomersTaskPane() { ctpCustomers = this.CustomTaskPanes.Add(new CustomersControl(), "Select a customer"); ctpCustomers.DockPosition = _ Microsoft.Office.Core. MsoCTPDockPosition.msoCTPDockPositionLeft; }

public void RemoveCustomersTaskPane() { this.CustomTaskPanes.Remove(ctpCustomers); }

  1. Fügen Sie den folgenden Code zum Ereignishandler Starter hinzu, um den benutzerdefinierten Aufgabenbereich hinzuzufügen.

    Visual Basic

AddCustomersTaskPane()

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

AddCustomersTaskPane();

  1. Fügen Sie den folgenden Code zum Ereignishandler Herunterfahren hinzu, um den benutzerdefinierten Aufgabenbereich zu entfernen.

    Visual Basic

    RemoveCustomersTaskPane()
    
C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">RemoveCustomersTaskPane();
  1. Klicken Sie mit der rechten Maustaste im Projektmappen-Explorer auf Ribbon1.xml, und klicken Sie dann auf Öffnen.

  2. Fügen Sie XML zur Datei hinzu, um eine zweite Schaltfläche zur Registerkarte VSTO Add-ins auf der Multifunktionsleiste hinzuzufügen. Die Gruppe „Hilfen“ enthält eine zweite Schaltfläche mit der Beschriftung Kundeninformationen, dem Bild einer Person und einem Adressbuch. Wenn der Benutzer auf die Schaltfläche klickt, läuft der Code mit der Methode CustomersButtonClick (wird später behandelt) ab.

    Xml

<customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad"> <ribbon> <tabs> <tab id="VSTOAddIns" label="VSTO Add-ins"> <group id="Group1" label="Helpers" visible ="1"> <button id="Calendar" label="Insert date" onAction="CalendarButtonClick" imageMso="ContentControlDate"/> <button id="Customers" label="Customer info" onAction="CustomersButtonClick" imageMso="MailSelectNames"/> </group> </tab> </tabs> </ribbon> </customUI>

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei Ribbon1, und klicken Sie dann auf Code anzeigen.

  2. Fügen Sie die folgende Deklaration zur Klasse Ribbon1 hinzu.

    Visual Basic

    Private customersControlVisible As Boolean
    
C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">private bool customersControlVisible;
  1. Fügen Sie die folgende Methode zur Klasse Ribbon1 hinzu, um den benutzerdefinierten Aufgabenbereich anzuzeigen und auszublenden, wenn der Benutzer auf die Schaltfläche Kundeninformationen klickt.

    Visual Basic

Public Sub CustomersButtonClick(ByVal control As _ Office.IRibbonControl) If Not customersControlVisible Then Globals.ThisAddIn.ctpCustomers.Visible = True Else Globals.ThisAddIn.ctpCustomers.Visible = False End If customersControlVisible = Not customersControlVisible End Sub

C\#

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">

public void CustomersButtonClick(Office.IRibbonControl control) { if (!customersControlVisible) { Globals.ThisAddIn.ctpCustomers.Visible = true; } else { Globals.ThisAddIn.ctpCustomers.Visible = false; } customersControlVisible = !customersControlVisible; }

  1. Klicken Sie im Menü Datei auf die Option Alle speichern.

  2. Klicken Sie im Menü Erstellen auf die Option Projektmappe erstellen und überprüfen Sie, ob das Projekt korrekt kompiliert.

So testen Sie den benutzerdefinierten Aufgabenbereich

  1. **Starten Sie die Anwendung mit der Taste ** F5 .

    Der Aufgabenbereich ist nicht sichtbar. Auf der Multifunktionsleiste befindet sich eine Registerkarte VSTO Add-Ins .

  2. Klicken Sie auf die Registerkarte VSTO Add-Ins.

    Die Registerkarte enthält die Schaltflächen Datum einfügen und Kundeninformation mit dem Symbol einer Person und eines Adressbuchs.

  3. Klicken Sie auf die Schaltfläche Kundeninformationen .

    Der benutzerdefinierte Aufgabenbereich ist links am Dokument angedockt. Der Titel des Aufgabenbereichs lautet Einen Kunden auswählen. Der Aufgabenbereich enthält ein Datenraster mit Kundennamen und eine Schaltfläche Kundeninformationen einfügen.

    Abbildung 3: Durch das Klicken auf die Schaltfläche „Kundeninformationen“ wird der benutzerdefinierte Aufgabenbereich „Einen Kunden auswählen“ angezeigt
    Abbildung 3: Durch das Klicken auf die Schaltfläche „Kundeninformationen“ wird der benutzerdefinierte Aufgabenbereich „Einen Kunden auswählen“ angezeigt

  4. Wählen Sie einen Kunden aus dem Datenraster aus, und klicken Sie auf Kundeninformationen einfügen .

    Der Firmenname, der Kontaktname und die Adresse des Kunden werden in das Dokument eingefügt.

  5. Klicken Sie auf Datum einfügen .

    Ein zweiter benutzerdefinierte Aufgabenbereich wird angezeigt. Dieser Aufgabenbereich enthält das von Ihnen zuvor erstellte Kalender-Steuerelement

    Abbildung 4: Mehrere benutzerdefinierte Aufgabenbereiche können gleichzeitig angezeigt werden
    Abbildung 4: Mehrere benutzerdefinierte Aufgabenbereiche können gleichzeitig angezeigt werden

  6. Klicken Sie auf Kundeninformationen.

    Der benutzerdefinierte Aufgabenbereich mit der Kundenliste wird nicht mehr angezeigt. Der Aufgabenbereich mit dem Kalender ist weiterhin sichtbar.

  7. Klicken Sie auf Datum einfügen.

    Der benutzerdefinierte Aufgabenbereich mit dem Kalender wird nicht mehr angezeigt.

  8. Klicken Sie auf Kundeninformationen.

    Der benutzerdefinierte Aufgabenbereich mit der Kundenliste wird erneut angezeigt. Dabei sollte es zu keiner bemerkbaren Verzögerung kommen, da das Steuerelement die Kundeninformationen bereits von der Datenbank abgerufen hat.

  9. Beenden Sie Word.

In dieser Übung haben Sie ein Add-In erstellt, das einen benutzerdefinierten Aufgabenbereich mit einem Datenraster anzeigt. Sie haben das Datenraster mit den von der Datenbank abgerufenen Kundennamen gefüllt. Der Benutzer kann einen Kunden aus dem Raster auswählen und diese Kundeninformationen in ein Worddokument einfügen. Da der Datenbankaufruf nur einmal erfolgen sollte, haben Sie den benutzerdefinierten Aufgabenbereich hinzugefügt, als der Add-In geladen wurde. Sie haben dann die Multifunktionsleiste angepasst, damit Benutzer den Aufgabenbereich durch das Klicken einer Schaltfläche anzeigen oder ausblenden können.

Ferner war zu sehen, dass jetzt mit Word mehrere benutzerdefinierte Aufgabenbereiche gleichzeitig angezeigt werden können. Dies bietet Ihnen zusätzliche Flexibilität bei der Entwicklung der Benutzeroberflächen. Die beiden in diesem Artikel verwendeten Aufgabenbereiche sind unabhängig voneinander, sodass Benutzer die Möglichkeit erhalten, beide gleichzeitig zu verwenden. Allerdings benötigt jeder geöffnete Aufgabenbereich einen Bildschirmbereich, und dieser besitzt nur eine eingeschränkte Ressource.

Ein guter erster Schritt bei der Verwaltung von mehreren benutzerdefinierten Aufgabenbereichen in einem Add-In ist das Erstellen von Schaltflächen auf der Multifunktionsleiste, um die Aufgabenbereiche anzuzeigen oder auszublenden. Berücksichtigen Sie auch andere Alternativen. Zum Beispiel können Sie in einem benutzerdefinierten Aufgabenbereich eine Schnittstelle im Registerkartenformat verwenden und dem Benutzer ermöglichen, die Registerkarte entsprechend einer bestimmten Aufgabe auszuwählen. Ebenso können Sie eine Dropdownliste zum Wechsel von einer Reihe von Steuerelementen zu einer anderen erstellen. Microsoft Office 2003 verwendet diese Technik beim integrierten Aufgabenbereich.

Beachten Sie, dass der Benutzer möglicherweise mehrere Add-Ins ablaufen lässt und dass jeder dieser Add-Ins ein oder mehrere benutzerdefinierte Aufgabenbereiche definieren kann. Daher ist es besonders wichtig, den Bildschirmbereich in Ihren Add-Ins effektiv zu verwalten.

 

Schlussbemerkung

Die Verbesserungen bei den benutzerdefinierten Aufgabenbereichen bei Microsoft Office 2007 bieten Ihnen mehr Flexibilität und Leistung bei der Erstellung von Lösungen mit Visual Studio-Tools für Office. Sie können benutzerdefinierte Aufgabenbereiche zusätzlich zu Word und Excel für InfoPath, Outlook und PowerPoint erstellen. Sie können Aufgabenbereiche entwickeln, die auf der Anwendungsebene bestehen, sowie Aufgabenbereiche, die an ein spezielles Dokument, eine bestimmte Arbeitsmappe oder Folie angehängt werden. Diese zusätzlichen Funktionen ermöglichen Ihnen das Erstellen benutzerdefinierter Aufgabenbereiche, um weitere Anforderungen Ihrer Benutzer zu erfüllen.

Visual Studio-Tools für Office bietet ausgezeichneten Support für benutzerdefinierte Aufgabenbereiche. Wenn Sie Visual Studio-Tools für Office mit Office 2003 verwenden, können Sie die neuen Funktionen von Microsoft Office 2007 aufgrund der vertrauten Technik besser nutzen.

 

Weitere Ressourcen

Weitere Informationen über die Produkte und Technologien, die in diesem Artikel erwähnt oder verwendet wurden, finden Sie unter:

 

Der Autor

Robert Green ist Entwickler, Autor und Trainer sowie leitender Berater bei MCW Technologies. Er ist Mitautor von Lehrgangsmaterial für AppDev Visual Basic und C#. Bevor Robert Green zu MCW kam, arbeitete er bei Microsoft und war Produktmanager von Visual Studio-Tools für Office.