Symptom
Kod som skrivs för att automatisera ett Office-program och programmässigt manipulera Microsoft Visual Basic for Applications-miljön (VBA) och objektmodellen kan misslyckas i Office med något av följande felmeddelanden: Från Visual Basic eller VBA:
Körningsfel 6068: Programmatisk åtkomst till Visual Basic Project är inte betrodd
Från Microsoft Visual C++, Microsoft Foundation Classes (MFC) eller ActiveX Template Library (ATL):
HRESULT = 0x800A17B4 (-2146822220) "Programmatisk åtkomst till Visual Basic Project är inte betrodd"
Samma kod fungerar utan fel på datorer med Office 97 och Office 2000.
Orsak
Office lägger till ett säkerhetsalternativ för att avsiktligt låsa programmässig åtkomst till VBA-objektmodellen från en automatiseringsklient såvida inte en användare väljer att tillåta sådan åtkomst. Det här är en inställning per användare och per program och nekar åtkomst som standard. Det här säkerhetsalternativet gör det svårare för obehöriga program att skapa "självreplikerande" kod som kan skada slutanvändarsystem.
Lösning
För att en automationsklient ska kunna komma åt VBA-objektmodellen programmässigt måste användaren som kör koden uttryckligen bevilja åtkomst. Om du vill aktivera åtkomst måste användaren följa de här stegen.
Office 2003 och Office XP
-
Öppna det aktuella Office 2003- eller Office XP-programmet. Klicka på Makro på Verktyg-menyn och klicka sedan på Säkerhet för att öppna dialogrutan Makrosäkerhet.
-
På fliken Betrodda källor markerar du kryssrutan Betrodd åtkomst till Visual Basic Project för att aktivera åtkomst.
-
Klicka på OK för att tillämpa inställningen. Du kan behöva starta om programmet för att koden ska köras korrekt om du automatiserar från ett COM-tillägg (Component Object Model) tillägg eller mall.
Office 2007
-
Öppna det aktuella Microsoft Office 2007-systemprogrammet. Klicka på Microsoft Office-knappen och sedan påProgramalternativ.
-
Klicka på fliken Säkerhetscenter och sedan påInställningar för Säkerhetscenter.
-
Klicka på fliken Makroinställningar , markera kryssrutan Betrodd åtkomst till VBA-projektobjektmodellen och klicka sedan på OK.
-
Klicka på OK.