Overzicht
Microsoft Office Excel ondersteunt automatiseringsinvoegtoepassingen naast COM-invoegtoepassingen (Component Object Model). In dit artikel worden de verschillen tussen deze twee typen invoegtoepassingen uitgelegd.
Meer informatie
COM-invoegtoepassingen
Met COM-invoegtoepassingen kan de ontwikkelaar de functionaliteit van Office-toepassingen uitbreiden voor aangepaste taken. COM-invoegtoepassingen worden meestal gebruikt om Excel te automatiseren als reactie op een klik op een opdrachtbalkknop, een formulier of dialoogvenster, of een andere specifieke gebeurtenis voor Excel, zoals het openen of sluiten van werkmappen of het invoeren van gegevens in werkbladen. De COM-invoegtoepassingsfuncties kunnen niet rechtstreeks worden aangeroepen vanuit celformules in werkbladen.
Een COM-invoegtoepassing is een COM-server (een ActiveX-DLL) die in proces is en die de IDTExensibility2-interface 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 wordt geïnstalleerd op het systeem van een gebruiker, worden registervermeldingen voor de invoegtoepassing gemaakt. 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, de beschrijving en het laadgedrag van de COM-invoegtoepassing beschrijven. Het laadgedrag beschrijft hoe de invoegtoepassing in Excel wordt geladen: geladen bij het opstarten, alleen geladen bij de volgende keer opstarten, geladen op aanvraag of niet geladen.
COM-invoegtoepassingen kunnen ook worden geladen en verwijderd via de Excel-gebruikersinterface. Ga hiervoor als volgt te werk:
- Wijs Werkbalken aan in het menu Beeld en klik op Aanpassen.
- Klik in het dialoogvenster Werkbalken op het tabblad Geavanceerd. Selecteer Hulpmiddelen 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. In het dialoogvenster worden alle COM-invoegtoepassingen weergegeven die op uw systeem zijn geïnstalleerd en de geselecteerde COM-invoegtoepassingen die momenteel zijn geladen.
COM-invoegtoepassingen kunnen ook worden geladen en verwijderd via de Excel-gebruikersinterface. Ga hiervoor als volgt te werk:
Klik op de Microsoft Office-knop en klik vervolgens op Opties voor Excel.
Klik op Invoegtoepassingen.
Klik onder Beheren op COM-invoegtoepassingen en klik vervolgens op Start .
In het dialoogvenster COM-invoegtoepassingen worden alle COM-invoegtoepassingen vermeld die op de computer zijn geïnstalleerd. De COM-invoegtoepassingen die momenteel worden geladen, zijn geselecteerd.
Zie de volgende Microsoft-website voor meer informatie:
Overzicht van het platform voor Office-invoegtoepassingen
Invoegtoepassingen voor automatisering
Behalve COM-invoegtoepassingen ondersteunt Excel ook automatiseringstoepassingen. Automatiseringsinvoegtoepassingen bouwen voort op COM-invoegtoepassingen omdat functies in automatiseringsinvoegtoepassingen kunnen worden aangeroepen vanuit formules in Excel-werkbladen. COM-invoegtoepassingen moeten COM-servers in proces zijn die de IDTExtensibility2-interface ondersteunen. automatiseringstoepassingen kunnen echter COM-servers in of buiten het proces zijn en implementatie van IDTExtensibility2 is optioneel.
Als u functies uit een automatiseringstoepassing 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 automatiseringsinvoegtoepassing in de lijst met geregistreerde COM-servers en klik op OK.
- De invoegtoepassing voor automatisering wordt weergegeven in het dialoogvenster Invoegtoepassingen. Klik op OK om het dialoogvenster Add-Ins te sluiten.
Ga als volgt te werk om functies uit een automatiseringsinvoegtoepassing in Excel 2007 en hoger te gebruiken:
Klik op de Microsoft Office-knop en klik vervolgens 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 automatiseringstoepassing en klik vervolgens op OK.
De invoegtoepassing voor automatisering 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 in- en uitschakelt, worden uw wijzigingen opgeslagen in het register. Ten eerste gebruikt Excel de volgende registerinstelling om te bepalen of een automatiseringstoepassing in de lijst met invoegtoepassingen al dan niet wordt 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 versienummer van Office op basis van de versie die u gebruikt.
De schakeloptie /A in de tekenreekswaarde is nieuw in Excel en ouder en wordt specifiek gebruikt voor het laden van automatiseringsinvoegtoepassingen. Alle automatiserings-add-ins worden op aanvraag geladen; er is geen instelling waarmee het laadgedrag voor een automatiseringsinvoegtoepassing kan worden gewijzigd.
Wanneer een automatiseringstoepassing die wordt weergegeven in het dialoogvenster Add-Ins wordt uitgeschakeld, wordt een subsleutel gemaakt met een naam die gelijk is aan de Prog-id van de invoegtoepassing 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 automatiseringsinvoegtoepassingen die u hebt toegevoegd aan de lijst met invoegtoepassingen, in de lijst behouden blijven, zelfs wanneer u ervoor hebt gekozen deze niet te laden.
Zie de volgende Microsoft-website voor meer informatie:
Overzicht van het platform voor Office-invoegtoepassingen
Automatiseringsinvoegtoepassingen die IDTExtensibility2 implementeren
Zoals eerder vermeld, kan IDTExtensibility2 worden geïmplementeerd door een automatiseringsinvoegtoepassing, maar dit is niet vereist om de functies in de invoegtoepassing aan te roepen vanuit een werkblad. Als u wilt dat uw automatiseringsinvoegtoepassing een verwijzing naar het Excel-exemplaar verkrijgt, kunt u IDTExtensibility2 implementeren en de toepassingsparameter van OnConnection gebruiken om Excel te automatiseren.
Een automatiseringsinvoegtoepassing voor de implementatie van
IDTExtensibility2 kan in de Excel-gebruikersinterface worden geladen via zowel het dialoogvenster COM Add-Ins als het dialoogvenster Add-Ins. Hieronder wordt het gedrag van een automatiseringsinvoegtoepassing beschreven op basis van het feit of deze in een of beide dialoogvensters is 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 ervan wordt bepaald via de instellingen in het register. Functies in de invoegtoepassing kunnen niet worden aangeroepen vanuit formules in een werkblad.
Geladen in het dialoogvenster COM-invoegtoepassingen en 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 automatiseringsinvoegtoepassing. Het exemplaar van de COM-invoegtoepassing gebruikt het laadgedrag dat wordt aangegeven in het register. het exemplaar van de automatiseringsinvoegtoepassing wordt op aanvraag geladen. De twee instanties werken onafhankelijk van elkaar en delen geen algemene variabelen.
Omdat automatiseringsinvoegtoepassingen op verzoek worden geladen, kan Excel proberen de invoegtoepassing te laden terwijl deze zich in de celbewerkingsmodus bevindt. Wanneer u een automatiseringstoepassing ontwikkelt die IDTExtensibility2 ondersteunt, 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 automatisering Add-In geladen
(c) Microsoft Corporation 2001, alle rechten voorbehouden. Bijdragen van Lori B. Turner, Microsoft Corporation.