web-dev-qa-db-fra.com

L'accès par programme au projet Visual Basic n'est pas approuvé

J'ai deux tâches planifiées sur mon ordinateur. Ils ouvrent tous deux des fichiers Excel et exécutent une macro. Ils sont assez similaires dans leur travail. Ils travaillent tous les deux sur mon ordinateur. Cependant, j'ai déplacé les tâches planifiées sur un ordinateur de collègues. L'un travaillait l'autre pas. 

Celui qui ne fonctionnait pas ouvrait Excel mais avait une erreur disant:

"l'accès programmatique au projet visual basic n'est pas fiable".

Comme je le dis, les deux fichiers Excel sont très similaires. Celui qui n'a pas fonctionné fait référence à deux projets supplémentaires, l'autre pas. Elles sont,

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

Je n'ai jamais rencontré cette erreur auparavant.

33
mHelpMe

Файл -> Параметры -> Центр управления безопасностью -> Настройки центра управления безопасностью -> Настройки макроса -> Доверительный доступ к объектной модели проекта VBA.

enter image description here

enter image description here

То обычно требуется, если вы ссылаетесь на библиотеку Extensibilité.

78
user2140173

Il est très facile de faire cela en Python en utilisant le module pywin32 de Mark Hammond.

La publication de @ user2140173 ci-dessus consiste en réalité à modifier certaines valeurs du registre. Ceci peut être réalisé par le programme pywin32 comme suit:

importer win32api importer 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
0
alpha_989