Я написал макрос в VBA, который обрабатывает другие файлы Excel (многие из них) с циклом for. Каждый раз, когда открывается новый, появляется уведомление о безопасности Microsoft Excel. Есть два варианта:

Enable Macros

И

Disable Macros

Где последний вариант по умолчанию. Я не могу установить always enable macros в настройках, так как моя компания не позволяет изменять эту опцию. Поэтому мне было интересно, есть ли способ попросить VBA всегда выбирать Enable Macro Option.

1
Maurizio Serra 23 Апр 2020 в 12:13

2 ответа

Лучший ответ

В нескольких словах нет, VBA не может отключить уведомление безопасности.

Причина вполне понятна; какой в этом смысл, если кто-то может просто включить его через код? Любой вредоносный макрос может быть запущен.

Что ты можешь сделать?

В настройках Центра управления безопасностью можно попробовать несколько вещей.

  1. Скопируйте все документы в папку (или папки) и добавьте путь к папке в список надежных расположений.

  2. Если документы находятся в сетевой папке, включите опцию, позволяющую доверять документам в сети (вам, вероятно, сначала нужно проверить политику своей компании).

  3. Создайте самозаверяющий сертификат и подпишите все свои проекты VBA (не уверен, что это будет работать, если это самозаверяющий сертификат).

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

Отключение защиты от макросов - непростая задача, иначе защита была бы мусором.

Надеюсь это поможет.

1
Kostas K. 23 Апр 2020 в 10:58

Попробуйте установить

'Options -> Trust Center -> Trust Center Settings... -> Macro Settings' и установите флажок «Доверительный доступ к объектной модели проекта VBA».

И попробуйте добавить ваши файлы в

'Trusted Locatons': 'Options -> Trust Center -> Trust Center Settings... -> Trusted Locations -> Add new location' ...

0
FaneDuru 23 Апр 2020 в 11:07