Programmatic Access To Visual Basic Project Is Not

2020-01-25 01:33发布

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 colleagues computer. One worked the other didn't.

The one that didn't worked 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.

3条回答
做个烂人
2楼-- · 2020-01-25 02:03

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
查看更多
3楼-- · 2020-01-25 02:07

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.

查看更多
可以哭但决不认输i
4楼-- · 2020-01-25 02:19

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

查看更多
登录 后发表回答