Для этого необходимо добавить местоположение, из которого запускается 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. Я не уверен в этом.