Programmatic access to Office VBA project is denied

Article translations Article translations
Article ID: 282830 - View products that this article applies to.
This article was previously published under Q282830
Expand all | Collapse all

On This Page

SYMPTOMS

Code that is written to automate an Office application and programmatically manipulate the Microsoft Visual Basic for Applications (VBA) environment and object model may fail on Office with one of the following error messages:

From Visual Basic or VBA:
Run-time error '6068': Programmatic Access to Visual Basic Project is not trusted
From Microsoft Visual C++, Microsoft Foundation Classes (MFC), or ActiveX Template Library (ATL):
HRESULT = 0x800A17B4 (-2146822220) "Programmatic Access to Visual Basic Project is not trusted"
The same code works without error on computers with Office 97 and Office 2000.

CAUSE

Office adds a security option to deliberately lock out programmatic access to the VBA object model from any Automation client unless a user chooses to permit such access. This is a per user and per application setting, and denies access by default.

This security option makes it more difficult for unauthorized programs to build "self-replicating" code that can harm end-user systems.

RESOLUTION

For any Automation client to be able to access the VBA object model programmatically, the user running the code must explicitly grant access. To turn on access, the user must follow these steps.

Office 2003 and Office XP

  1. Open the Office 2003 or Office XP application in question. On the Tools menu, click Macro, and then click Security to open the Macro Security dialog box.
  2. On the Trusted Sources tab, click to select the Trust access to Visual Basic Project check box to turn on access.
  3. Click OK to apply the setting. You may need to restart the application for the code to run properly if you automate from a Component Object Model (COM) add-in or template.

Office 2007

  1. Open the 2007 Microsoft Office system application in question. Click the Microsoft Office button, and then click Application Options.
  2. Click the Trust Center tab, and then click Trust Center Settings.
  3. Click the Macro Settings tab, click to select the Trust access to the VBA project object model check box, and then click OK.
  4. Click OK.

Properties

Article ID: 282830 - Last Review: October 6, 2011 - Revision: 6.0
APPLIES TO
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Word 2002
  • Microsoft Office Excel 2003
  • Microsoft Excel 2010
Keywords: 
kbautomation kbprb KB282830

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com