Zusammenfassung
Microsoft Office Excel unterstützt automatisierungs-Add-Ins zusätzlich zu COM-Add-Ins (Component Object Model). In diesem Artikel werden die Unterschiede zwischen diesen beiden Add-In-Typen erläutert.
Weitere Informationen
COM-Add-Ins
COM-Add-Ins bieten dem Entwickler eine Möglichkeit, die Funktionalität von Office-Anwendungen für benutzerdefinierte Aufgaben zu erweitern. COM-Add-Ins werden in der Regel verwendet, um Excel als Reaktion auf einen Klick auf eine CommandBar-Schaltfläche, ein Formular oder Dialogfeld oder ein anderes Excel-spezifisches Ereignis wie das Öffnen oder Schließen von Arbeitsmappen oder das Eingeben von Daten in Arbeitsblättern zu automatisieren. COM-Add-In-Funktionen können nicht direkt aus Zellformeln in Arbeitsblättern aufgerufen werden.
Ein COM-Add-In ist ein prozessinterner COM-Server (eine ActiveX-DLL), der die IDTExensibility2-Schnittstelle implementieren muss. Alle COM-Add-Ins müssen jede der fünf Methoden dieser Schnittstelle implementieren: OnConnection, OnStartupComplete, OnAddinsUpdate, OnBeginShutDown und OnDisconnection.
Wenn ein COM-Add-In auf dem System eines Benutzers installiert ist, werden Registrierungseinträge für das Add-In erstellt. Zusätzlich zur normalen COM-Registrierung wird ein COM-Add-In für jede Office-Anwendung registriert, in der es ausgeführt wird. Com-Add-Ins, die von Excel verwendet werden, werden im folgenden Registrierungsschlüssel registriert:
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\
Dieser Schlüssel enthält einen Unterschlüssel für jedes installierte COM-Add-In. Der Name des Unterschlüssels ist die ProgID für das COM-Add-In. Der Unterschlüssel für ein COM-Add-In enthält auch Werte, die den Anzeigenamen, die Beschreibung und das Ladeverhalten des COM-Add-Ins beschreiben. Das Ladeverhalten beschreibt, wie das Add-In in Excel geladen wird: beim Start geladen, nur beim nächsten Start geladen, bei Bedarf geladen oder nicht geladen.
COM-Add-Ins können auch über die Excel-Benutzeroberfläche geladen und entladen werden. Gehen Sie zu diesem Zweck folgendermaßen vor:
-
Zeigen Sie im Menü Ansicht auf Symbolleisten, und klicken Sie dann auf Anpassen.
-
Klicken Sie im Dialogfeld Symbolleisten auf die Registerkarte Erweitert. Wählen Sie in der Liste der Kategorien Tools aus. Suchen Sie com-Add-Ins in der Liste der Befehle, und ziehen Sie den Befehl in ein Menü oder eine Befehlsleiste Ihrer Wahl. Schließen Sie das Dialogfeld Symbolleisten.
-
Klicken Sie auf den Com-Add-Ins-Befehl, den Sie hinzugefügt haben, um das Dialogfeld COM-Add-Ins anzuzeigen. Im Dialogfeld werden alle COM-Add-Ins aufgelistet, die auf Ihrem System installiert sind, und die com-Add-Ins, die derzeit geladen sind, sind ausgewählt.
COM-Add-Ins können auch über die Excel-Benutzeroberfläche geladen und entladen werden. Gehen Sie dazu wie folgt vor:
-
Klicken Sie auf die Microsoft Office-Schaltfläche und anschließend auf Excel-Optionen.
-
Klicken Sie auf Add-Ins.
-
Klicken Sie unter Verwalten auf COM-Add-Ins, und klicken Sie dann auf Gehe zu .
Im Dialogfeld COM-Add-Ins werden alle COM-Add-Ins aufgelistet, die auf dem Computer installiert sind. Die com-Add-Ins, die derzeit geladen werden, sind ausgewählt.
Weitere Informationen finden Sie auf der folgenden Microsoft-Website:
Automatisierungs-Add-Ins
Zusätzlich zu COM-Add-Ins unterstützt Excel Automatisierungs-Add-Ins. Automatisierungs-Add-Ins bauen auf COM-Add-Ins auf, in denen Funktionen in Automatisierungs-Add-Ins aus Formeln in Excel-Arbeitsblättern aufgerufen werden können. COM-Add-Ins müssen prozessinterne COM-Server sein, die die IDTExtensibility2-Schnittstelle unterstützen. Automatisierungs-Add-Ins können jedoch prozessinterne oder out-of-Process-COM-Server sein, und die Implementierung von IDTExtensibility2 ist optional.
Führen Sie die folgenden Schritte aus, um Funktionen aus einem Automatisierungs-Add-In in Excel zu verwenden:
-
Klicken Sie im Menü Extras auf Add-Ins.
-
Klicken Sie im Dialogfeld Add-Ins auf Automatisierung. Wählen Sie in der Liste der registrierten COM-Server Ihr Automation-Add-In aus, und klicken Sie auf OK.
-
Das Automation-Add-In wird im Dialogfeld Add-Ins angezeigt. Klicken Sie auf OK, um das Dialogfeld Add-Ins zu schließen.
Führen Sie die folgenden Schritte aus, um Funktionen aus einem Automatisierungs-Add-In in Excel 2007 und höher zu verwenden:
-
Klicken Sie auf die Microsoft Office-Schaltfläche und anschließend auf Excel-Optionen.
-
Klicken Sie auf Add-Ins.
-
Klicken Sie unter Verwalten auf Excel Hinzufügen, und klicken Sie dann auf Los.
-
Klicken Sie im Dialogfeld Add-Ins auf Automatisierung. Klicken Sie in der Liste der registrierten COM-Server auf Ihr Automation-Add-In, und klicken Sie dann auf OK.
Das Automation-Add-In wird im Dialogfeld Add-Ins angezeigt. Klicken Sie auf OK , um das Dialogfeld Add-Ins zu schließen.
Wenn Sie die Liste im Dialogfeld Add-Ins hinzufügen oder Add-Ins in der Liste auswählen und deaktivieren, speichert Excel Ihre Änderungen in der Registrierung. Zunächst verwendet Excel die folgende Registrierungseinstellung, um zu bestimmen, ob ein Automatisierungs-Add-In in der Add-In-Liste geladen wird:
Excel 2002
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"
Excel 2003
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"
Excel 2007
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"
Hinweis: Ändern Sie die Office-Versionsnummer basierend auf der von Ihnen verwendeten Version.
Die /A-Option, die im Zeichenfolgenwert verwendet wird, ist neu in Excel und älter und wird speziell zum Laden von Automatisierungs-Add-Ins verwendet. Alle Automation-Add-Ins werden bei Bedarf geladen. Es gibt keine Einstellung, die das Ladeverhalten für ein Automatisierungs-Add-In ändern kann.
Wenn ein Automation-Add-In, das im Dialogfeld Add-Ins aufgeführt ist, deaktiviert wird, wird im folgenden Registrierungsschlüssel ein Unterschlüssel mit einem Namen erstellt, der der ProgID des Add-Ins entspricht:
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Add-in Manager
Excel 2003:
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Add-in Manager
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Add-in Manager
Diese Registrierungseinstellung stellt sicher, dass Automation-Add-Ins, die Sie der Add-In-Liste hinzugefügt haben, in der Liste beibehalten werden, auch wenn Sie sich entschieden haben, sie nicht zu laden.
Weitere Informationen finden Sie auf der folgenden Microsoft-Website:
Automatisierungs-Add-Ins, die IDTExtensibility2 implementieren
Wie bereits erwähnt, kann ein Automatisierungs-Add-In IDTExtensibility2 implementieren, ist aber nicht erforderlich, damit Excel die Funktionen im Add-In aus einem Arbeitsblatt aufrufen kann. Wenn Ihr Automation-Add-In einen Verweis auf die Excel-instance erhält, können Sie IDTExtensibility2 implementieren und den Application-Parameter von OnConnection verwenden, um Excel zu automatisieren.
Ein Automatisierungs-Add-In
, das implementiert
IDTExtensibility2 kann sowohl über das Dialogfeld COM-Add-Ins als auch über das Dialogfeld Add-Ins in die Excel-Benutzeroberfläche geladen werden. Im Folgenden wird das Verhalten eines Automatisierungs-Add-Ins basierend darauf beschrieben, ob es in einem oder beiden dieser Dialogfelder geladen wird:
-
Wird nur im Dialogfeld Add-Ins geladen.
Das Add-In wird bei Bedarf geladen. Funktionen im Add-In können aus Formeln in einem Arbeitsblatt aufgerufen werden. -
Wird nur im Dialogfeld COM-Add-Ins geladen.
Das Add-In wird als COM-Add-In geladen, und sein Ladeverhalten wird anhand der Einstellungen in der Registrierung bestimmt. Funktionen im Add-In können nicht aus Formeln in einem Arbeitsblatt aufgerufen werden. -
Geladen sowohl im Dialogfeld COM-Add-Ins als auch im Dialogfeld Add-Ins.
Zwei separate Instanzen des Add-Ins werden geladen. Eine instance wird als COM-Add-In und die andere instance als Automatisierungs-Add-In geladen. Das COM-Add-In instance verwendet das in der Registrierung angegebene Ladeverhalten. Das Automation-Add-In instance bei Bedarf geladen. Die beiden Instanzen arbeiten unabhängig voneinander und verwenden keine globalen Variablen.
Da Automation-Add-Ins bei Bedarf geladen werden, versucht Excel möglicherweise, das Add-In zu laden, während es sich im Zellbearbeitungsmodus befindet. Wenn Sie ein Automatisierungs-Add-In entwickeln, das IDTExtensibility2 unterstützt, sollten Sie daher darauf achten, dass Sie beim Laden des Add-Ins keine Aktionen ausführen, die versuchen, den Zustand von Excel zu ändern. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
284876 FEHLER: Excel schlägt fehl, wenn automation Add-In lädt
(c) Microsoft Corporation 2001, Alle Rechte vorbehalten. Beiträge von Lori B. Turner, Microsoft Corporation.