Sammanfattning

Microsoft Office Excel har stöd för automationstillägg utöver COM-tillägg (Component Object Model). I den här artikeln förklaras skillnaderna mellan dessa två typer av tillägg. 

Mer information

COM-tillägg

COM-tillägg ger utvecklaren ett sätt att utöka funktionerna i Office-program för anpassade uppgifter. COM-tillägg används vanligtvis för att automatisera Excel som svar på ett klick på en kommandofältsknapp, ett formulär eller en dialogruta eller någon annan händelse som är specifik för Excel, till exempel att öppna eller stänga arbetsböcker eller ange data i kalkylblad. Com-tilläggsfunktioner kan inte anropas direkt från cellformler i kalkylblad.Ett COM-tillägg är en pågående COM-server (en ActiveX-DLL) som måste implementera gränssnittet IDTExensibility2. Alla COM-tillägg måste implementera var och en av de fem metoderna i gränssnittet: OnConnection, OnStartupComplete, OnAddinsUpdate, OnBeginShutDown och OnDisconnection.När ett COM-tillägg installeras på en användares system skapas registerposter för tillägget. Utöver den vanliga COM-registreringen registreras ett COM-tillägg för varje Office-program där det körs. COM-tillägg som används av Excel är registrerade i följande registernyckel:

            
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\ 

Den här nyckeln innehåller en undernyckel för varje installerat COM-tillägg. Namnet på undernyckeln är ProgID för COM-tillägget. Undernyckeln för ett COM-tillägg innehåller också värden som beskriver com-tilläggets eget namn, beskrivning och inläsningsbeteende. Inläsningsbeteendet beskriver hur tillägget läses in i Excel: lästs in vid start, läses in vid nästa start, läses in på begäran eller inte läses in.COM-tillägg kan också läsas in och tas bort via Användargränssnittet i Excel. Gör så här:

  1. Peka på Verktygsfält på Visa-menyn och klicka sedan på Anpassa.

  2. Klicka på fliken Avancerat i dialogrutan Verktygsfält. Välj Verktyg i listan med kategorier. Leta reda på COM-tillägg i listan med kommandon och dra kommandot till en meny eller kommandofältet. Stäng dialogrutan Verktygsfält.

  3. Klicka på kommandot COM-tillägg som du har lagt till för att visa dialogrutan COM-tillägg. I dialogrutan visas alla COM-tillägg som är installerade på datorn och de COM-tillägg som är inlästa är markerade.

COM-tillägg kan också läsas in och tas bort via Användargränssnittet i Excel. Gör så här:

  1. Klicka på Microsoft Office-knappen och sedan på Excel-alternativ.

  2. Klicka på Tillägg.

  3. Under Hantera klickar du på COM-tillägg och sedan på till .I dialogrutan COM-tillägg visas alla COM-tillägg som är installerade på datorn. De COM-tillägg som för närvarande är inlästa är markerade.

Mer information finns på följande Microsoft-webbplats:

Plattformsöversikt för Office-tillägg

Automation-tillägg

Utöver COM-tillägg har Excel stöd för automationstillägg. Automation-tillägg bygger på COM-tillägg genom att funktioner i automationstillägg kan anropas från formler i Excel-kalkylblad. COM-tillägg måste vara processbaserade COM-servrar som stöder IDTExtensibility2-gränssnittet. Automation-tillägg kan dock vara com-servrar som är in-process eller out-of-process och implementering av IDTExtensibility2 är valfritt.Gör så här om du vill använda funktioner från ett automationstillägg i Excel:

  1. Klicka på Tillägg på Verktyg-menyn.

  2. Klicka på Automatisering i dialogrutan Add-Ins. I listan över registrerade COM-servrar väljer du automationstillägget och klickar på OK.

  3. Automation-tillägget visas i dialogrutan Tillägg. Stäng dialogrutan Add-Ins genom att klicka på OK.

Följ de här stegen om du vill använda funktioner från ett automationstillägg i Excel 2007 och senare:

  1. Klicka på Microsoft Office-knappen och sedan på Excel-alternativ.

  2. Klicka på Tillägg.

  3. Under Hantera klickar du på Excel-tillägg och sedan på .

  4. Klicka på Automationi dialogrutan Tillägg. Klicka på automationstillägget i listan över registrerade COM-servrar och klicka sedan på OK.Automation-tillägget visas i dialogrutan Tillägg . Stäng dialogrutan Tillägg genom att klicka på OK.

När du gör tillägg i listan i dialogrutan Add-Ins eller när du markerar och avmarkerar Tillägg i listan lagras ändringarna i registret i Excel. Först använder Excel följande registerinställning för att avgöra om ett automationstillägg i tilläggslistan läses in:

 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"

Obs! Ändra versionsnumret för Office baserat på vilken version du använder.Växeln /A som används i strängvärdet är ny i Excel och äldre och används specifikt för att läsa in automationstillägg. Alla automationstillägg läses in på begäran. det finns ingen inställning som kan ändra inläsningsbeteendet för ett automationstillägg.När ett automationstillägg som visas i dialogrutan Add-Ins avmarkeras skapas en undernyckel med ett namn som är lika med tilläggets ProgID med följande registernyckel:

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 Den här registerinställningen säkerställer att automationstillägg som du har lagt till i listan Tillägg behålls i listan även när du har valt att inte läsa in dem.Mer information finns på följande Microsoft-webbplats:

Plattformsöversikt för Office-tillägg

Automation-tillägg som implementerar IDTExtensibility2

Som tidigare nämnts kan ett automationstillägg implementera IDTExtensibility2, men det krävs inte för att Excel ska anropa funktionerna i tillägget från ett kalkylblad. Om du kräver att automationstillägget hämtar en referens till Excel-instansen kan du implementera IDTExtensibility2 och använda parametern Application för OnConnection för att automatisera Excel.Ett automationstillägg som implementerar IDTExtensibility2 kan läsas in i Excel-användargränssnittet via både dialogrutan COM Add-Ins och dialogrutan Add-Ins. Nedan beskrivs hur ett automationstillägg fungerar baserat på om det läses in i en eller båda dialogrutorna:

  • Endast inläst i dialogrutan Tillägg.Tillägget läses in på begäran. Funktioner i tillägget kan anropas från formler i ett kalkylblad.

  • Läses endast in i dialogrutan COM-tillägg.Tillägget läses in som ett COM-tillägg och dess inläsningsbeteende bestäms av inställningarna i registret. Funktioner i tillägget kan inte anropas från formler i ett kalkylblad.

  • Läses in både i dialogrutan COM-tillägg och i dialogrutan Tillägg.Två separata instanser av tillägget läses in. En instans läses in som ett COM-tillägg och den andra instansen läses in som ett automationstillägg. COM-tilläggsinstansen använder inläsningsbeteendet som anges i registret. Instansen automationstillägg läses in på begäran. De två instanserna fungerar oberoende av varandra och delar inte globala variabler.

Eftersom automationstillägg läses in på begäran kan Excel försöka läsa in tillägget medan det är i cellredigeringsläge. När du utvecklar ett automationstillägg som stöder IDTExtensibility2 bör du därför vara försiktig så att du inte gör något som försöker ändra Excels tillstånd när tillägget läses in. Mer information finns i följande artikel i Microsoft Knowledge Base:

284876 BUGG: Excel misslyckas när automation Add-In läses in (c) Microsoft Corporation 2001, med ensamrätt. Bidrag från Lori B. Turner, Microsoft Corporation.  

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.