Sammendrag

Microsoft Office Excel støtter automatiseringstillegg i tillegg til COM-tillegg (Component Object Model). Denne artikkelen forklarer forskjellene mellom disse to typene tillegg. 

Mer informasjon

COM-tillegg

COM-tillegg presenterer utvikleren med en måte å utvide funksjonaliteten til Office-programmer for egendefinerte oppgaver på. COM-tillegg brukes vanligvis til å automatisere Excel som svar på et klikk på en kommandolinjeknapp, et skjema eller en dialogboks eller en annen hendelse som er spesifikk for Excel, for eksempel å åpne eller lukke arbeidsbøker eller skrive inn data i regneark. COM-tilleggsfunksjoner kan ikke kalles direkte fra celleformler i regneark.Et COM-tillegg er en prosessintern COM-server (en ActiveX DLL) som må implementere IDTExensibility2-grensesnittet. Alle COM-tillegg må implementere hver av de fem metodene i dette grensesnittet: OnConnection, OnStartupComplete, OnAddinsUpdate, OnBeginShutDown og OnDisconnection.Når et COM-tillegg er installert på en brukers system, opprettes registeroppføringer for tillegget. I tillegg til vanlig COM-registrering registreres et COM-tillegg for hvert Office-program der det kjører. COM-tillegg som brukes av Excel, er registrert i følgende registernøkkel:

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

Denne nøkkelen inneholder en undernøkkel for hvert installert COM-tillegg. Navnet på undernøkkelen er ProgID for COM-tillegget. Undernøkkelen for et COM-tillegg inneholder også verdier som beskriver COM-tilleggets egendefinerte navn, beskrivelse og virkemåte for innlasting. Innlastingsvirkemåten beskriver hvordan tillegget lastes inn i Excel: lastet inn ved oppstart, lastet bare ved neste oppstart, lastet inn ved behov eller ikke lastet inn.COM-tillegg kan også lastes inn og fjernes gjennom Brukergrensesnittet i Excel. Dette gjør du slik:

  1. Pek på Verktøylinjer på Vis-menyen, og klikk deretter Tilpass.

  2. Klikk fanen Avansert i dialogboksen Verktøylinjer. Velg Verktøy i listen over kategorier. Finn COM-tillegg i listen over kommandoer, og dra kommandoen til en meny eller kommandolinje. Lukk dialogboksen Verktøylinjer.

  3. Klikk kommandoen COM-tillegg du har lagt til for å vise dialogboksen COM-tillegg. Dialogboksen viser alle COM-tillegg som er installert på systemet, og COM-tilleggene som er lastet inn, er valgt.

COM-tillegg kan også lastes inn og fjernes gjennom Brukergrensesnittet i Excel. Dette gjør du slik:

  1. Klikk Microsoft Office-knappen, og klikk deretter Alternativer for Excel.

  2. Klikk Tillegg.

  3. Klikk COM-tillegg under Behandle, og klikk deretter Gå til .Dialogboksen COM-tillegg viser alle COM-tillegg som er installert på datamaskinen. COM-tilleggene som er lastet inn, er valgt.

Hvis du vil ha mer informasjon, kan du se følgende Microsoft-webområde:

Plattformoversikt for Office-tillegg

Automatiseringstillegg

I tillegg til COM-tillegg støtter Excel automatiseringstillegg. Automatiseringstillegg bygger på COM-tillegg som funksjoner i automatiseringstillegg kan kalles fra formler i Excel-regneark. COM-tillegg må være prosessinterne COM-servere som støtter IDTExtensibility2-grensesnittet. Automatiseringstillegg kan imidlertid være prosessinterne eller prosessinterne COM-servere, og implementering av IDTExtensibility2 er valgfritt.Hvis du vil bruke funksjoner fra et automatiseringstillegg i Excel, gjør du følgende:

  1. Klikk Tillegg på Verktøy-menyen.

  2. Klikk Automatisering i dialogboksen Add-Ins. Velg automatiseringstillegget fra listen over registrerte COM-servere, og klikk OK.

  3. Automatiseringstillegget vises i dialogboksen Tillegg. Klikk OK for å lukke dialogboksen Add-Ins.

Hvis du vil bruke funksjoner fra et automatiseringstillegg i Excel 2007 og nyere, følger du disse trinnene:

  1. Klikk Microsoft Office-knappen, og klikk deretter Alternativer for Excel.

  2. Klikk Tillegg.

  3. Klikk Excel-tillegg under Behandle, og klikk deretter Gå til.

  4. Klikk Automatiseringi dialogboksen Tillegg. Klikk automatiseringstillegget i listen over registrerte COM-servere, og klikk deretter OK.Automatiseringstillegget vises i dialogboksen Tillegg . Klikk OK for å lukke dialogboksen Tillegg .

Når du legger til listen i dialogboksen Add-Ins, eller når du velger og fjerner tillegg i listen, lagrer Excel endringene i registeret. Først bruker Excel følgende registerinnstilling til å avgjøre om et automatiseringstillegg i tilleggslisten lastes inn:

 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! Endre versjonsnummeret for Office basert på versjonen du bruker./A-bryteren som brukes i strengverdien, er ny i Excel og eldre, og brukes spesielt til å laste inn automatiseringstillegg. Alle automatiseringstillegg lastes inn ved behov. det finnes ingen innstilling som kan endre virkemåten for innlasting for et automatiseringstillegg.Når et automatiseringstillegg som er oppført i dialogboksen Add-Ins fjernes, opprettes en undernøkkel med et navn som er lik ProgID-en for tillegget, i følgende registernøkkel:

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 Denne registerinnstillingen sikrer at automatiseringstillegg som du har lagt til i listen over tillegg, beholdes i listen selv når du har valgt å ikke laste dem inn.Hvis du vil ha mer informasjon, kan du se følgende Microsoft-webområde:

Plattformoversikt for Office-tillegg

Automatiseringstillegg som implementerer IDTExtensibility2

Som tidligere nevnt kan et automatiseringstillegg implementere IDTExtensibility2, men det er ikke nødvendig for at Excel skal kunne kalle opp funksjonene i tillegget fra et regneark. Hvis du krever at automatiseringstillegget henter en referanse til Excel-forekomsten, kan du implementere IDTExtensibility2 og bruke programparameteren OnConnection til å automatisere Excel.Et automatiseringstillegg som implementerer IDTExtensibility2 kan lastes inn i Brukergrensesnittet i Excel gjennom både DIALOGBOKSEN COM Add-Ins og dialogboksen Add-Ins. Følgende beskriver virkemåten til et automatiseringstillegg basert på om det er lastet inn i én eller begge av disse dialogboksene:

  • Bare lastet inn i dialogboksen Tillegg.Tillegget lastes inn ved behov. Funksjoner i tillegget kan kalles fra formler i et regneark.

  • Bare lastet inn i dialogboksen COM-tillegg.Tillegget lastes inn som et COM-tillegg, og innlastingsvirkemåten bestemmes fra innstillingene i registeret. Funksjoner i tillegget kan ikke kalles fra formler i et regneark.

  • Lastet inn både i dialogboksen COM-tillegg og dialogboksen Tillegg.To separate forekomster av tillegget lastes inn. Én forekomst lastes inn som et COM-tillegg, og den andre forekomsten lastes inn som et automatiseringstillegg. COM-tilleggsforekomsten bruker virkemåten for innlasting som er angitt i registret. Forekomsten av automatiseringstillegget lastes inn ved behov. De to forekomstene fungerer uavhengig av hverandre og deler ikke globale variabler.

Siden automatiseringstillegg lastes inn ved behov, kan Excel prøve å laste inn tillegget mens det er i celleredigeringsmodus. Når du utvikler et automatiseringstillegg som støtter IDTExtensibility2, bør du derfor være forsiktig så du ikke gjør noe som prøver å endre tilstanden til Excel mens tillegget lastes inn. Hvis du vil ha mer informasjon, les følgende artikkel i Microsoft Knowledge Base:

284876 FEIL: Excel mislykkes når automatisering Add-In lastes inn (c) Microsoft Corporation 2001, med enerett. Bidrag fra Lori B. Turner, Microsoft Corporation.  

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.