Samenvatting
Microsoft Office Excel biedt ondersteuning voor Automation-invoegtoepassingen naast COM-invoegtoepassingen (Component Object Model). In dit artikel worden de verschillen tussen deze twee typen invoegtoepassingen uitgelegd.
Meer informatie
COM-invoegtoepassingen
COM-invoegtoepassingen bieden de ontwikkelaar een manier om de functionaliteit van Office-toepassingen voor aangepaste taken uit te breiden. COM-invoegtoepassingen worden meestal gebruikt om Excel te automatiseren als reactie op een klik op een opdrachtbalkknop, een formulier of dialoogvenster of een andere gebeurtenis die specifiek is voor Excel, zoals het openen of sluiten van werkmappen of het invoeren van gegevens in werkbladen. Com-invoegtoepassingsfuncties kunnen niet rechtstreeks worden aangeroepen vanuit celformules in werkbladen.
Een COM-invoegtoepassing is een ACTIEVE COM-server (een ActiveX-DLL) die de INTERFACE IDTExensibility2 moet implementeren. Alle COM-invoegtoepassingen moeten elk van de vijf methoden van deze interface implementeren: OnConnection, OnStartupComplete, OnAddinsUpdate, OnBeginShutDown en OnDisconnection. Wanneer een COM-invoegtoepassing is geïnstalleerd op het systeem van een gebruiker, worden er registervermeldingen gemaakt voor de invoegtoepassing. Naast de normale COM-registratie wordt een COM-invoegtoepassing geregistreerd voor elke Office-toepassing waarin deze wordt uitgevoerd. COM-invoegtoepassingen die door Excel worden gebruikt, worden geregistreerd in de volgende registersleutel:
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\
Deze sleutel bevat een subsleutel voor elke geïnstalleerde COM-invoegtoepassing. De naam van de subsleutel is de ProgID voor de COM-invoegtoepassing. De subsleutel voor een COM-invoegtoepassing bevat ook waarden die de beschrijvende naam, beschrijving en laadgedrag van de COM-invoegtoepassing beschrijven. In het laadgedrag wordt beschreven hoe de invoegtoepassing in Excel wordt geladen: geladen bij het opstarten, alleen bij het volgende opstarten, op aanvraag geladen of niet geladen.
COM-invoegtoepassingen kunnen ook worden geladen en uitgeladen via de Gebruikersinterface van Excel. Ga hiervoor als volgt te werk:-
Wijs in het menu Beeld de optie Werkbalken aan en klik vervolgens op Aanpassen.
-
Klik in het dialoogvenster Werkbalken op het tabblad Geavanceerd. Selecteer Extra in de lijst met categorieën. Zoek COM-invoegtoepassingen in de lijst met opdrachten en sleep de opdracht naar een menu of opdrachtbalk van uw keuze. Sluit het dialoogvenster Werkbalken.
-
Klik op de opdracht COM-invoegtoepassingen die u hebt toegevoegd om het dialoogvenster COM-invoegtoepassingen weer te geven. Het dialoogvenster bevat alle COM-invoegtoepassingen die op uw systeem zijn geïnstalleerd en de COM-invoegtoepassingen die momenteel zijn geladen, zijn geselecteerd.
COM-invoegtoepassingen kunnen ook worden geladen en uitgeladen via de Gebruikersinterface van Excel. Hiertoe gaat u als volgt te werk:
-
Klik op de Microsoft Office-knop en klik op Opties voor Excel.
-
Klik op Invoegtoepassingen.
-
Klik onder Beheren op COM-invoegtoepassingen en klik vervolgens op Start .
Het dialoogvenster COM-invoegtoepassingen bevat alle COM-invoegtoepassingen die op de computer zijn geïnstalleerd. De COM-invoegtoepassingen die momenteel zijn geladen, zijn geselecteerd.
Zie de volgende Microsoft-website voor meer informatie:
Automation-invoegtoepassingen
Naast COM-invoegtoepassingen ondersteunt Excel Automation-invoegtoepassingen. Automation-invoegtoepassingen zijn gebaseerd op COM-invoegtoepassingen, zodat functies in Automation-invoegtoepassingen kunnen worden aangeroepen vanuit formules in Excel-werkbladen. COM-invoegtoepassingen moeten IN-process COM-servers zijn die ondersteuning bieden voor de INTERFACE IDTExtensibility2. Automation-invoegtoepassingen kunnen echter in- of out-of-process COM-servers zijn en de implementatie van IDTExtensibility2 is optioneel.
Als u functies van een Automation-invoegtoepassing in Excel wilt gebruiken, voert u de volgende stappen uit:-
Klik in het menu Extra op Invoegtoepassingen.
-
Klik in het dialoogvenster Add-Ins op Automatisering. Selecteer uw Automation-invoegtoepassing in de lijst met geregistreerde COM-servers en klik op OK.
-
De Automation-invoegtoepassing wordt weergegeven in het dialoogvenster Invoegtoepassingen. Klik op OK om het dialoogvenster Add-Ins te sluiten.
Als u functies van een Automation-invoegtoepassing in Excel 2007 en hoger wilt gebruiken, voert u de volgende stappen uit:
-
Klik op de Microsoft Office-knop en klik op Opties voor Excel.
-
Klik op Invoegtoepassingen.
-
Klik onder Beheren op Excel-invoegtoepassingen en klik vervolgens op Start.
-
Klik in het dialoogvenster Invoegtoepassingen op Automatisering. Klik in de lijst met geregistreerde COM-servers op uw Automation-invoegtoepassing en klik vervolgens op OK.
De Automation-invoegtoepassing wordt weergegeven in het dialoogvenster Invoegtoepassingen . Klik op OK om het dialoogvenster Invoegtoepassingen te sluiten.
Wanneer u toevoegingen aan de lijst aanbrengt in het dialoogvenster Add-Ins of wanneer u Invoegtoepassingen in de lijst selecteert en wist, worden uw wijzigingen opgeslagen in het register. Eerst gebruikt Excel de volgende registerinstelling om te bepalen of een Automation-invoegtoepassing in de lijst met invoegtoepassingen is geladen:
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"
Opmerking: wijzig het office-versienummer op basis van de versie die u gebruikt.
De schakeloptie /A die wordt gebruikt in de tekenreekswaarde is nieuw in Excel en ouder en wordt specifiek gebruikt om Automation-invoegtoepassingen te laden. Alle Automation-invoegtoepassingen worden op aanvraag geladen; er is geen instelling waarmee het laadgedrag voor een Automation-invoegtoepassing kan worden gewijzigd. Wanneer een Automation-invoegtoepassing die wordt vermeld in het dialoogvenster Add-Ins is uitgeschakeld, wordt een subsleutel met een naam die gelijk is aan de ProgID van de invoegtoepassing gemaakt in de volgende registersleutel: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 Deze registerinstelling zorgt ervoor dat Automation-invoegtoepassingen die u hebt toegevoegd aan de lijst met invoegtoepassingen, in de lijst worden bewaard, zelfs wanneer u ervoor hebt gekozen om ze niet te laden. Zie de volgende Microsoft-website voor meer informatie:
Automation-invoegtoepassingen waarmee IDTExtensibility2 wordt geïmplementeerd
Zoals eerder vermeld, kan een Automation-invoegtoepassing IDTExtensibility2 implementeren, maar het is niet vereist om de functies in de invoegtoepassing vanuit een werkblad aan te roepen. Als u wilt dat uw Automation-invoegtoepassing een verwijzing naar het Excel-exemplaar krijgt, kunt u IDTExtensibility2 implementeren en de toepassingsparameter van OnConnection gebruiken om Excel te automatiseren.
Een Automation-invoegtoepassing die implementeert IDTExtensibility2 kan worden geladen in de gebruikersinterface van Excel via zowel het dialoogvenster COM Add-Ins als het dialoogvenster Add-Ins. Hieronder wordt het gedrag van een Automation-invoegtoepassing beschreven op basis van of deze in een of beide dialoogvensters wordt geladen:-
Alleen geladen in het dialoogvenster Invoegtoepassingen.
De invoegtoepassing wordt op aanvraag geladen. Functies in de invoegtoepassing kunnen worden aangeroepen vanuit formules in een werkblad. -
Alleen geladen in het dialoogvenster COM-invoegtoepassingen.
De invoegtoepassing wordt geladen als een COM-invoegtoepassing en het laadgedrag wordt bepaald door instellingen in het register. Functies in de invoegtoepassing kunnen niet worden aangeroepen vanuit formules in een werkblad. -
Geladen in zowel het dialoogvenster COM-invoegtoepassingen als het dialoogvenster Invoegtoepassingen.
Er worden twee afzonderlijke exemplaren van de invoegtoepassing geladen. Het ene exemplaar wordt geladen als een COM-invoegtoepassing en het andere exemplaar wordt geladen als een Automation-invoegtoepassing. Het com-invoegtoepassingsexemplaren gebruikt het laadgedrag dat in het register wordt aangegeven; het exemplaar van de Automation-invoegtoepassing wordt op aanvraag geladen. De twee exemplaren werken onafhankelijk van elkaar en delen geen globale variabelen.
Omdat Automation-invoegtoepassingen op aanvraag worden geladen, kan Excel proberen de invoegtoepassing te laden terwijl deze zich in de celbewerkingsmodus bevindt. Wanneer u een Automation-invoegtoepassing ontwikkelt die ONDERSTEUNING biedt voor IDTExtensibility2, moet u daarom oppassen dat u niets doet waarmee wordt geprobeerd de status van Excel te wijzigen terwijl de invoegtoepassing wordt geladen. Raadpleeg het volgende artikel in de Microsoft Knowledge Base voor meer informatie:
284876 FOUT: Excel mislukt wanneer Automation Add-In wordt geladen (c) Microsoft Corporation 2001, alle rechten voorbehouden. Bijdragen van Lori B. Turner, Microsoft Corporation.