powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Не выводить окно диалога на запуск макроса при открытии Excel
7 сообщений из 7, страница 1 из 1
Не выводить окно диалога на запуск макроса при открытии Excel
    #34851539
69bi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При запуске шаблона(файла) *.xls из другой программы, появляется окно диалога, которое предупреждает о запуске макроса. Необходимо, чтобы оно не появлялось, а макрос отрабатывал без лишних вопросов. Просто не может рядом сидеть человек и 1000 раз нажимать Enter. Уровень безопасности изменять также нельзя - такова политика безопасности на предприятии. Запись в реестр тоже не рассматриваем из-за возможной реакции на это антивирусов и сисадминским запрещением внесения изменений в реестр.
Можно ли каким-то простым програмнымными решениями или например опциями из командной строки - отключать проверку безопасности для конкретного запуска Excel, а затем ей вновь включать? Или сразуже имитировать нажати Enter, чтобы подтверждать выполнение макроса?
...
Рейтинг: 0 / 0
Не выводить окно диалога на запуск макроса при открытии Excel
    #34851640
jdedevel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для решения вопроса есть 2 способа.
1)Создайте цифровую подпись для своих макросов.
Только создавайте не локальную, а доменную подпись, используя соответствующую службу.
Ну и подписывайте проекты этой подписью.
Когда юзер откроет такой файл впервые, Excel спросит его следует ли открывать эту книгу с макросами. Там будет чекбокс "Всегда доверять...". Необходимо выбрать этот пункт. Все последующие открытия любых файлов с такой подписью будет происходить без вопроса о включении макросов.
2) Второй способ позволяет программно установить уровень безопасности.
На vba это выглядит примерно так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
'запоминаем текущий уровень безопасности
secur = Application.AutomationSecurity
On Error GoTo Err
    Application.AutomationSecurity = msoAutomationSecurityForceDisable
    Workbooks.Open ("c:\Book1.xls")

'восстанавливаем текущий уровень безопасности
    Application.AutomationSecurity = secur
    Exit Sub

Err: Application.AutomationSecurity = secur

Итого:
Первый способ позволяет открывать подписанные файлы не через программу, а просто из проводника, с выбранным высоким уровнем безопасности макросов. К тому же цифровая подпись подтверждает, что эта книга создана именно этим программистом.
Но второй способ, конечно, менее энергозатратен и более предпочтителен именно для описанной проблемы.
Надеюсь помог.
...
Рейтинг: 0 / 0
Не выводить окно диалога на запуск макроса при открытии Excel
    #34854288
69bi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такой способ я знаю.
Написав код на смену безопасности и вставив его в открываемый файл, тем самым мы создаем макрос, на который будет ругатся система безопасности при открытии файла и мы наступаем на грабли от которых хотим избавится.
1. Как отключить из внешней программы написанную на другом языке, вызвав какую либо функцию Windows?
2. А вот можно ли отключить безопасность из командной строки, чтобы вобще не использовать программный способ?
...
Рейтинг: 0 / 0
Не выводить окно диалога на запуск макроса при открытии Excel
    #34854976
Фотография Дадахан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создать два файла скрипта. первый будет отключать безопасность, второй включать ее обратно. а в промежутке выполнять работы.
...
Рейтинг: 0 / 0
Не выводить окно диалога на запуск макроса при открытии Excel
    #34855006
Фотография Дадахан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дадахансоздать два файла скрипта. первый будет отключать безопасность, второй включать ее обратно. а в промежутке выполнять работы.
т.е. хотел сказать в скрипте отключить безопасность, и им же открыть файл
...
Рейтинг: 0 / 0
Не выводить окно диалога на запуск макроса при открытии Excel
    #34855411
69bi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скрипт - это код на VB? А как скрипт запускать? Например, из программы написанной на С++ или из SAPa или т.п.
...
Рейтинг: 0 / 0
Не выводить окно диалога на запуск макроса при открытии Excel
    #34855880
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имелся ввиду скорей всего VBScript, который работает через WSH (что-то типо windows script host). Встроен во все винды начиная с win2000, если спец. не удалять только.

У VBScript возможности конечно по скромнее чем у Visual Basic, но ActiveX технологию он поддерживает, так что через CreateObject можно решить почти все проблемы, главное что компонент нужный был.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Не выводить окно диалога на запуск макроса при открытии Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]