Symptomer
Kode som er skrevet for å automatisere et Office-program og programmatisk manipulere Microsoft Visual Basic for Applications (VBA)-miljøet og objektmodellen, kan mislykkes i Office med en av følgende feilmeldinger: Fra Visual Basic eller VBA:
Kjøretidsfeil 6068: Programmatisk tilgang til Visual Basic Project er ikke klarert
Fra Microsoft Visual C++, Microsoft Foundation Classes (MFC) eller ActiveX Template Library (ATL):
HRESULT = 0x800A17B4 (-2146822220) "Programmatisk tilgang til Visual Basic Project er ikke klarert"
Den samme koden fungerer uten feil på datamaskiner med Office 97 og Office 2000.
Årsak
Office legger til et sikkerhetsalternativ for å bevisst låse ut programmatisk tilgang til VBA-objektmodellen fra en hvilken som helst automatiseringsklient, med mindre en bruker velger å tillate slik tilgang. Dette er en per bruker og per programinnstilling, og nekter tilgang som standard. Dette sikkerhetsalternativet gjør det vanskeligere for uautoriserte programmer å bygge «selvreplikerende» kode som kan skade sluttbrukersystemer.
Løsning
For at en automatiseringsklient skal kunne få tilgang til VBA-objektmodellen programmatisk, må brukeren som kjører koden, eksplisitt gi tilgang. Hvis du vil aktivere tilgang, må brukeren følge disse trinnene.
Office 2003 og Office XP
-
Åpne det aktuelle Office 2003- eller Office XP-programmet. Klikk Makro på Verktøy-menyen, og klikk deretter Sikkerhet for å åpne dialogboksen Makrosikkerhet.
-
Klikk på fanen Klarerte kilder for å merke av for Klarer tilgang til Visual Basic Project for å aktivere tilgang.
-
Klikk OK for å bruke innstillingen. Du må kanskje starte programmet på nytt for at koden skal kjøre riktig hvis du automatiserer fra et COM-tillegg (Component Object Model) eller en mal.
Office 2007
-
Åpne det aktuelle 2007 Microsoft Office-systemprogrammet. Klikk Microsoft Office-knappen, og klikk deretterProgramalternativer.
-
Klikk fanen Klareringssenter, og klikk deretterInnstillinger for klareringssenter.
-
Klikk fanen Makroinnstillinger , klikk for å merke av for Klarer tilgang til VBA-prosjektobjektmodellen , og klikk deretter OK.
-
Klikk OK.