Как избавиться от предупреждения системы безопасности VBA

Я разработал приложение Доступа с помощью VBA. Каждый раз я открытый доступ, я получаю следующее:

https://lh5.googleusercontent.com/wgn5B5PllVXGuG6W4_xiFa1rouSpDSn27MC0nzPkgJ5CPN8BKpAn-gDFsVS4GZtepY-c4jtbEupKeV227ogICQlzcg=s512

Я должен нажать Options-> Enable Content для выполнения моих макросов. Это приложение будет общим для несколько человек на работе, которые не являются таким образом технически подкованы. Таким образом согласно требованиям, я должен удалить его. Я попытался подписаться/упаковать базу данных, но она все еще не избавляется от предупреждения.

8
задан Lance Roberts 3 May 2011 в 23:22
поделиться

3 ответа

Для этого вам необходимо добавить место, откуда запускается Excel, в «Надежные расположения».

Для этого выполните следующие действия:

  • В параметрах Excel перейдите в Центр управления безопасностью и затем Надежные расположения.
  • Добавьте расположение.

Это должно быть сделано для каждого компьютера.

Кроме того, нет способа сделать это с точки зрения файла Excel, поскольку это полностью уничтожило бы функцию безопасности, позволяющую пользователю выбирать, запускать код VBA или нет.

Также небольшое примечание: если вы подпишете файл Excel, вам все равно понадобится, чтобы получатель доверял вам как издателю, поэтому ваше решение, вероятно, не сработало.

Редактировать:

Принимая во внимание комментарии, кажется, есть способ сделать это программно. Как взято из XpertsExchange,

Почему бы просто не установить запись реестра из кода, не вызывая Shell? Используйте класс cRegistry, найденный здесь:

http: //www.vbaccelerator.com / home / VB / Code / Libraries / Registry_and_Ini_Files / Complete_Registry_Control / article.asp

Код VBA:

 Dim c As New cRegistry
    With c
        .ClassKey = HKEY_CURRENT_USER
        .SectionKey = "Software\Microsoft\Office\12.0\Access\Security\Trusted Locations\YourTrustedLocationName"
        .ValueKey = "Path"
        .ValueType = REG_DWORD
        .Value = "Full path to Trusted Folder"
    End With

Единственное предостережение в том, что YourTrustedLocationname должно быть уникальным ...

Вы должны попробовать, если оно должно быть .ValueType = REG_DWORD или REG_SZ. Я не уверен в этом.

11
ответ дан 5 December 2019 в 07:10
поделиться

Сделайте так, чтобы ваш макрос был подписан доверенным центром.

2
ответ дан 5 December 2019 в 07:10
поделиться

Это индивидуальный вариант для каждого пользователя. Всем нужно будет «доверять» вашей книге.

В Excel нажмите кнопку меню и выберите «Параметры Excel». В этом окне выберите Центр управления безопасностью, а затем - Параметры центра управления безопасностью. В этом окне выберите Надежные расположения.

На этом экране вы, вероятно, захотите установить флажок «Разрешить надежные расположения в моей сети», а затем нажмите «Добавить расположение» и добавьте сетевое расположение вашей книги.

3
ответ дан 5 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: