Программный доступ к проекту Visual Basic не является доверенным

У меня на компьютере две запланированные задачи. Они оба открывают файлы Excel, запускают макрос и очень похожи в том, что делают. Они оба работают на моем компьютере. Однако я перенес запланированные задачи на компьютер коллеги. Одно работало, другое - нет.

Тот, который не работал, открыл Excel, но с ошибкой сказал:

«программный доступ к проекту Visual Basic не является доверенным».

Как я уже сказал, оба файла Excel очень похожи. Тот, который не сработал, ссылается на два дополнительных проекта, другой - нет. Они есть,

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

Я никогда раньше не сталкивался с этой ошибкой.


person mHelpMe    schedule 03.09.2014    source источник


Ответы (3)


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

введите описание изображения здесь

введите описание изображения здесь

Обычно это необходимо, если вы ссылаетесь на библиотеку расширяемости.

person Community    schedule 03.09.2014
comment
+ 1 Тоже закрыл вопрос на перенос суперпользователя :) - person Siddharth Rout; 03.09.2014
comment
Как это сделать программно? - person morethanyell; 15.03.2018
comment
Имейте в виду, что это то, что системные администраторы могут заблокировать с помощью групповой политики. - person Martin Brown; 05.06.2019

Это очень легко сделать в Python, используя модуль pywin32 Марка Хэммонда.

То, что на самом деле делает сообщение @ user2140173 выше, - это изменение некоторых значений реестра. Это может быть выполнено программно модулем pywin32 следующим образом:

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)

Ссылка:

  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
person alpha_989    schedule 03.08.2018
comment
Я так рад, что кто-то смог показать мне путь рег, чтобы я мог развернуть все сразу! Спасибо. Set-ItemProperty -path HKCU:\Software\Microsoft\Office\16.0\Excel\security -Name "AccessVBOM" -Value 1 - person Hicsy; 27.03.2020
comment
См. stackoverflow.com/a/25235214/6302131, чтобы узнать, как сделать это из VBA. - person Sancarn; 31.05.2020

Версия для Mac - раньше в версии для Mac для этого не было настроек. Вы всегда получали диалог, говорящий об этом.

Но теперь, по крайней мере, с версией 16.30, не знаю, как давно, у пользователей Mac доступна такая же настройка.

Кстати, он находится под защитой, а не под доверием.

HTH

объектная модель VBA доверие конфиденциальности снимка экрана

person Lord Anubis    schedule 20.10.2019