Share via


Übersicht über Hostelemente und Hoststeuerelemente

Aktualisiert: Juli 2008

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office.

Projekte auf Dokumentebene

  • Excel 2003

  • Excel 2007

  • Word 2003

  • Word 2007

Projekte auf Anwendungsebene

  • Excel 2007

  • Word 2007

Weitere Informationen finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

Hostelemente und Hoststeuerelemente sind Klassen, die das Programmiermodell für Visual Studio Tools for Office-Projektmappen bereitstellen. 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.

Hostelemente

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

Jede dieser Klassen erweitert eine Klasse, die im Word- oder Excel-Objektmodell als systemeigene Klasse enthalten ist (ein so genanntes systemeigenes Office-Objekt). Zum Beispiel erweitert das Microsoft.Office.Tools.Word.Document-Hostelement die Microsoft.Office.Interop.Word.Document-Klasse, die 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 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 Komponentenfach, das 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 ThisDocument, ThisWorkbook-Klasse oder die Sheetn-Klasse, die Visual Studio Tools for Office in Ihrem Projekt zur Entwurfszeit automatisch generiert. Diese generierten Klassen werden aus den Hostelementklassen abgeleitet und stellen einen Einstiegspunkt für den Code bereit. Weitere Informationen hierzu 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. Ab Visual Studio 2008 Service Pack 1 (SP1) können Sie jedoch die Hostelemente Microsoft.Office.Tools.Word.Document, Microsoft.Office.Tools.Excel.Workbook und Microsoft.Office.Tools.Excel.Worksheet zur Laufzeit in Add-Ins erstellen.

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 hierzu finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in Add-Ins auf Anwendungsebene zur Laufzeit.

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.

Darüber hinaus können Sie mit Visual Studio Tools for Office auch Windows Forms-Steuerelemente in Office-Projektmappen 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.

Hinweis:

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 hierzu finden Sie unter Binden von Daten an Steuerelemente.

In Projekten auf Dokumentebene und ab SP1 in Projekten auf Anwendungsebene können Sie den Dokumenten zur Laufzeit zudem bestimmte Hoststeuerelemente hinzufügen. Weitere Informationen hierzu 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.

Hinweis:

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 Gewusst wie: Löschen von NamedRange-Steuerelementen zur Entwurfszeit.

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 hierzu 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 Beispiel für Word-Dokumentschutztechniken und Beispiel für Excel-Dokumentschutztechniken.

Hinweis:

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 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.

Hinweis:

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

Inhaltssteuerelemente

Binden von Daten an Steuerelemente

Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen

Weitere Ressourcen

Word-Hoststeuerelemente

Excel-Hoststeuerelemente

Steuerelemente für Office-Dokumente

Änderungsprotokoll

Date

Versionsgeschichte

Grund

Juli 2008

Informationen über das Verwenden von Hostelementen und Hoststeuerelementen in Add-Ins auf Anwendungsebene hinzugefügt.

SP1-Featureänderung.