Freigeben über


Übersicht über Hostelemente und Hoststeuerelemente

Hostelemente und Hoststeuerelemente sind Typen, die das Programmiermodell für Office-Lösungen bereitstellen, die mit den Office-Entwicklungstools in Visual Studio erstellt werden. Damit ähnelt die Interaktion mit den Objektmodellen von Microsoft Office Word und Microsoft Office Excel, die COM-basiert sind, der Interaktion mit verwalteten Objekten wie Windows Forms-Steuerelementen.

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

Hostelemente

Hostelemente sind Typen, die in Office-Projekten an der Spitze von Objektmodellhierarchien angesiedelt sind. Visual Studio Tools for Office-Laufzeit definiert die folgenden Hostelemente für Word- und Excel-Lösungen:

Jeder dieser Typen erweitert ein Objekt, das im Word- oder Excel-Objektmodell als systemeigenes Objekt enthalten ist (ein so genanntes systemeigenes Office-Objekt). Zum Beispiel erweitert das Microsoft.Office.Tools.Word.Document-Hostelement das Microsoft.Office.Interop.Word.Document-Objekt, das in der primären Interopassembly für Word definiert ist.

Hostelemente verfügen generell über dieselbe Basisfunktionalität wie die entsprechenden Office-Objekte, weisen jedoch zusätzlich folgende Erweiterungen auf:

  • Die Fähigkeit, verwaltete Steuerelemente zu hosten, einschließlich Hoststeuerelementen und Windows Forms-Steuerelementen.

  • Umfangreichere Ereignismodelle. Manche Dokument-, Arbeitsmappen- und Arbeitsblattereignisse in systemeigenen Word- und Excel-Objektmodellen werden nur auf der Anwendungsebene ausgelöst. Hostelemente stellen diese Ereignisse auf der Dokumentebene bereit, so dass es einfacher ist, sie für ein bestimmtes Dokument zu behandeln.

Grundlegendes zu Hostelementen in Projekten auf Dokumentebene

In Projekten auf Dokumentebene stellen Hostelemente einen Einstiegspunkt für Ihren Code bereit, und sie verfügen über Designer, die Sie bei der Entwicklung der Projektmappe unterstützen.

Die Hostelemente Microsoft.Office.Tools.Word.Document und Microsoft.Office.Tools.Excel.Worksheet verfügen über zugeordnete Designer, die ähnlich wie ein Windows Forms-Designer das Dokument oder Arbeitsblatt visuell darstellen. Mit diesem Designer können Sie den Inhalt des Dokuments oder Arbeitsblatts direkt in Word oder Excel ändern und Steuerelemente auf die Entwurfsoberfläche ziehen. Weitere Informationen finden Sie unter Dokumenthostelement und unter Arbeitsblatthostelement.

Das Microsoft.Office.Tools.Excel.Workbook-Hostelement fungiert nicht als Container für Steuerelemente, die über eine Benutzeroberfläche verfügen. Der Designer für dieses Hostelement dient stattdessen als Komponentenleiste, die es Ihnen ermöglicht, eine Komponente wie DataSet auf Ihre Entwurfsoberfläche zu ziehen. Weitere Informationen finden Sie unter Arbeitsmappenhostelement.

Hostelemente können nicht programmgesteuert in Projekten auf Dokumentebene erstellt werden. Verwenden Sie stattdessen die Klassen ThisDocument, ThisWorkbook oder Sheetn, die Visual Studio im Projekt zur Entwurfszeit automatisch generiert. Diese generierten Klassen werden aus den Hostelementen abgeleitet und stellen einen Einstiegspunkt für den Code bereit. Weitere Informationen finden Sie unter Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen.

Grundlegendes zu Hostelementen in Projekten auf Anwendungsebene

Wenn Sie ein Add-In auf Anwendungsebene erstellen, haben Sie standardmäßig keinen Zugriff auf Hostelemente. Sie können jedoch die Hostelemente Microsoft.Office.Tools.Word.Document, Microsoft.Office.Tools.Excel.Workbook und Microsoft.Office.Tools.Excel.Worksheet zur Laufzeit in Word- und Excel-Add-Ins generieren.

Nach dem Generieren eines Hostelements können Sie Aufgaben wie das Hinzufügen von Steuerelementen zu Dokumenten und das Erstellen von Smarttags ausführen, die in einem bestimmten Dokument erkannt werden. Weitere Informationen finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in Add-Ins auf Anwendungsebene zur Laufzeit.

Tipp

Smarttags sind in Excel 2010 und Word 2010 veraltet. Weitere Informationen finden Sie unter Übersicht über Smarttags.

Hoststeuerelemente

Hoststeuerelemente erweitern verschiedene Objekte der Benutzeroberfläche in den Word- und Excel-Objektmodellen, beispielsweise Microsoft.Office.Interop.Word.ContentControl-Objekte und Microsoft.Office.Interop.Excel.Range-Objekte.

Für Excel-Projekte stehen folgende Hoststeuerelemente zur Verfügung:

Für Word-Projekte stehen folgende Hoststeuerelemente zur Verfügung:

Hoststeuerelemente, die Office-Dokumenten hinzugefügt werden, verhalten sich wie die systemeigenen Office-Objekte. Hoststeuerelemente verfügen jedoch über zusätzliche Funktionalität, unter anderem über Ereignisse und Datenbindungsfähigkeiten. Wenn Sie beispielsweise die Ereignisse eines systemeigenen Microsoft.Office.Interop.Excel.Range-Objekts in Excel erfassen möchten, müssen Sie zuerst das Änderungsereignis des Arbeitsblatts behandeln. Anschließend müssen Sie bestimmen, ob die Änderung innerhalb von Microsoft.Office.Interop.Excel.Range aufgetreten ist. Im Gegensatz dazu verfügt das Microsoft.Office.Tools.Excel.NamedRange-Hoststeuerelement über ein Change-Ereignis, dass Sie direkt behandeln können.

Die Beziehung zwischen einem Hostelement und Hoststeuerelementen ähnelt stark der Beziehung zwischen einem Windows Form und Windows Forms-Steuerelementen. So wie Sie ein Textfeldsteuerelement auf einem Windows Form platzieren würden, platzieren Sie ein Microsoft.Office.Tools.Excel.NamedRange-Steuerelement auf einem Microsoft.Office.Tools.Excel.Worksheet-Hostelement. In der folgenden Abbildung wird die Beziehung zwischen Hostelementen und Hoststeuerelementen verdeutlicht.

Beziehung zwischen Hostelementen und Hoststeuerelementen

Darüber hinaus können Sie auch Windows Forms-Steuerelemente in Office-Lösungen verwenden, indem Sie diese Steuerelemente direkt der Word- und Excel-Dokumentoberfläche hinzufügen. Weitere Informationen finden Sie unter Übersicht über Windows Forms-Steuerelemente in Office-Dokumenten.

Tipp

Das Hinzufügen von Hoststeuerelementen oder Windows Forms-Steuerelementen zu einem Word-Unterdokument wird nicht unterstützt.

Hinzufügen von Hoststeuerelementen zu Dokumenten

In Projekten auf Dokumentebene können Sie den Word-Dokumenten oder Excel-Arbeitsblättern zur Entwurfszeit Hoststeuerelemente auf folgende Weise hinzufügen:

  • Fügen Sie dem Dokument zur Entwurfszeit Steuerelemente auf dieselbe Weise wie systemeigene Objekte hinzu.

  • Ziehen Sie Hoststeuerelemente aus der Toolbox auf die Dokumente und Arbeitsblätter. Excel-Hoststeuerelemente sind in Excel-Projekten auf der Registerkarte Excel-Steuerelemente verfügbar, und Word-Hoststeuerelemente sind in Word-Projekten auf der Registerkarte Word-Steuerelemente verfügbar.

  • Ziehen Sie Hoststeuerelemente aus dem Fenster Datenquellen auf die Dokumente oder Arbeitsblätter. Auf diese Weise können Sie Steuerelemente hinzufügen, die bereits an Daten gebunden sind. Weitere Informationen finden Sie unter Binden von Daten an Steuerelemente in Office-Projektmappen.

In Projekten auf Dokumentebene und auf Anwendungsebene können Sie den Dokumenten zur Laufzeit zudem bestimmte Hoststeuerelemente hinzufügen. Weitere Informationen finden Sie unter Hinzufügen von Steuerelementen zu Office-Dokumenten zur Laufzeit.

Weitere Informationen über das Hinzufügen von Hoststeuerelementen zu Dokumenten finden Sie in den folgenden Themen:

Benennen von Hoststeuerelementen

Wenn Sie ein Hoststeuerelement aus der Toolbox auf ein Dokument ziehen, wird das Steuerelement automatisch mit dem Steuerelementtyp und einer fortlaufenden Nummer am Ende benannt. Lesezeichen werden z. B. mit bookmark1, bookmark2 usw. benannt. Wenn Sie das Steuerelement mithilfe der systemeigene Funktionen von Word oder Excel hinzufügen, können Sie diesem beim Erstellen einen bestimmten Namen geben. Sie können die Steuerelemente auch durch Ändern des Werts der Name-Eigenschaft im Eigenschaftenfenster umbenennen.

Tipp

Für die Benennung von Hoststeuerelementen können Sie keine reservierten Wörter verwenden. Wenn Sie beispielsweise einem Arbeitsblatt ein NamedRange-Steuerelement hinzufügen und den Namen auf System ändern, treten beim Erstellen des Projekts Fehler auf.

Löschen von Hoststeuerelementen

In Projekten auf Dokumentebene können Sie Hoststeuerelemente zur Entwurfszeit löschen, indem Sie das Steuerelement im Excel-Arbeitsblatt oder Word-Dokument auswählen und dann die ENTF-Taste drücken. Sie müssen jedoch das Dialogfeld Namen definieren in Excel verwenden, um NamedRange-Steuerelemente zu löschen. Weitere Informationen finden Sie unter How to: Delete NamedRange Controls at Design Time.

Wenn Sie einem Dokument zur Entwurfszeit ein Hoststeuerelement hinzufügen, sollten Sie dieses nicht programmgesteuert zur Laufzeit entfernen, da ansonsten beim nächsten Versuch, das Steuerelement in Code zu verwenden, eine Ausnahme ausgelöst wird. Die Delete-Methode eines Hoststeuerelements entfernt nur Hoststeuerelemente, die dem Dokument zur Laufzeit hinzugefügt wurden. Wenn Sie die Delete-Methode für ein Hoststeuerelement aufrufen, das zur Entwurfszeit erstellt wurde, wird eine Ausnahme ausgelöst.

Mit der Delete-Methode eines NamedRange wird der NamedRange jedoch nur gelöscht, wenn er programmgesteuert zum Arbeitsblatt hinzugefügt wurde. Dies wird als dynamisches Erstellen von Hoststeuerelementen bezeichnet. Dynamisch erstellte Hoststeuerelemente können auch entfernt werden, indem der Name des Steuerelements an die Remove-Methode der Worksheet.Controls-Eigenschaft oder der Document.Controls-Eigenschaft übergeben wird. Weitere Informationen finden Sie unter Hinzufügen von Steuerelementen zu Office-Dokumenten zur Laufzeit.

Wenn Endbenutzer während der Laufzeit ein Hoststeuerelement aus dem Dokument löschen, können Fehler in der Projektmappe auftreten. Mithilfe der Dokumentschutzfunktionen in Word und Excel können Sie das Löschen der Hoststeuerelemente verhindern. Weitere Informationen finden Sie unter Beispiele und exemplarische Vorgehensweisen für die Programmierung mit Office.

Tipp

Entfernen Sie Steuerelemente nicht programmgesteuert, während der Shutdown-Ereignishandler des Dokuments oder Arbeitsblatts ausgeführt wird. Die Benutzeroberflächenelemente sind nicht mehr verfügbar, wenn das Shutdown-Ereignis auftritt. Wenn Sie vor dem Schließen des Dokuments Steuerelemente entfernen möchten, fügen Sie den Code einem anderen Ereignishandler hinzu, z. B. BeforeClose oder BeforeSave.

Programmieren von Ereignissen der Hoststeuerelemente

Hoststeuerelemente können Office-Objekte durch das Hinzufügen von Ereignissen erweitern. Das Microsoft.Office.Interop.Excel.Range-Objekt in Excel und das Microsoft.Office.Interop.Word.Bookmark-Objekt in Word verfügen zum Beispiel nicht über Ereignisse, werden aber von Visual Studio Tools for Office-Laufzeit durch das Hinzufügen von programmierbaren Ereignissen erweitert. Sie können auf diese Ereignisse in derselben Art und Weise zugreifen und sie codieren, wie Sie auf Ereignisse von Steuerelementen in Windows Forms zugreifen, und zwar über die Dropdownliste für Ereignisse in Visual Basic und die Eigenschaftenseite für Ereignisse in C#. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Programmieren in Abhängigkeit von Ereignissen eines NamedRange-Steuerelements.

Tipp

Sie sollten die EnableEvents-Eigenschaft des Application-Objekts in Excel nicht auf false festlegen. Wenn Sie diese Eigenschaft auf false festlegen, kann Excel keine Ereignisse auslösen, auch nicht die Ereignisse von Hoststeuerelementen.

Siehe auch

Konzepte

Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen

Automatisieren von Word mithilfe von erweiterten Objekten

Automatisieren von Excel mithilfe von erweiterten Objekten

Weitere Ressourcen

Programmieren von Add-Ins auf Anwendungsebene

Programmieren von Anpassungen auf Dokumentebene

Steuerelemente für Office-Dokumente

Binden von Daten an Steuerelemente in Office-Projektmappen