Programmatic Access To Visual Basic Project Is Not Trusted

VbaExcelProgrammatically Created

Vba Problem Overview


I have two scheduled tasks on my computer. They both open Excel files and run a macro & are pretty similar in what they do. They both work on my computer. However I moved the scheduled tasks onto a colleague's computer. One worked the other didn't.

The one that didn't work opened Excel but had an error saying: >"programmatic access to visual basic project is not trusted".

Like I say, both Excel files are very similar. The one that didn't work does reference two additional projects the other one does not. They are,

Microsoft Visual Basic for Applications Extensibility 5.3
Microsoft Windows Common Controls-2.6.0 (SP6)

I have never come across this error before.

Vba Solutions


Solution 1 - Vba

File -> Options -> Trust Center -> Trust Center Setttings -> Macro Settings -> Trust Access to the VBA Project object model.

enter image description here

enter image description here

This is usually needed if you are referencing Extensibility library.

Solution 2 - Vba

Its very easy to do this in Python using the pywin32 module by Mark Hammond.

What the above post by @user2140173 does actually is to change some registry values. This can be programmatically accomplished by the pywin32 module as follows:

import win32api
import win32con

key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,
                            "Software\\Microsoft\\Office\\16.0\\Excel"
                            + "\\Security", 0, win32con.KEY_ALL_ACCESS)
win32api.RegSetValueEx(key, "AccessVBOM", 0, win32con.REG_DWORD, 1)

Ref:

  1. http://docs.activestate.com/activepython/2.4/pywin32/win32api__RegSetValueEx_meth.html
  2. http://docs.activestate.com/activepython/2.4/pywin32/win32api__RegOpenKeyEx_meth.html

Solution 3 - Vba

Mac Version - In the past there was no setting for this on the Mac version. You did get always a dialog saying the thing.

But now, at least with version 16.30, not sure how long ago, the Mac Users have the same setting available.

BTW, it is under security, not under trust.

HTH

screenshot privacy trust VBA object model

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmHelpMeView Question on Stackoverflow
Solution 1 - Vbauser2140173View Answer on Stackoverflow
Solution 2 - Vbaalpha_989View Answer on Stackoverflow
Solution 3 - VbaiPadawanView Answer on Stackoverflow