powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / программно Уровень Безопасности
25 сообщений из 30, страница 1 из 2
программно Уровень Безопасности
    #33253648
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

интересует програмно :
сменить Уровень Безопасности эксел
установить сертификат центра сертификации в доверенные
установить сертификат определенного издателя кода в доверенные

пусть даже будут системные предупреждения...
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33253967
АлексейКинтересует програмно :
сменить Уровень Безопасности эксел

Совйство AutomationSecurity объекта Application позволяет управлять уровнем безопасности при открытии рабочей книги. (Excel > 2000)

Открытие рабочей книги с автоматическим отключением макросов.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    Dim secAutomation As MsoAutomationSecurity

    secAutomation = Application.AutomationSecurity

    Application.AutomationSecurity = msoAutomationSecurityForceDisable
    Application.FileDialog(msoFileDialogOpen).Show
    
    Dim fn As String
    
    fn = Application.FileDialog(msoFileDialogFilePicker).SelectedItems( 1 )
    Application.Workbooks.Open fn
    Application.AutomationSecurity = secAutomation
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33253985
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я понял этот код отключает чтото типа автоекзека вордовского

а хочется настройки безопасности включить на уровень средний или низкий..
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33254016
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пока открыт файл действует что то
после закрытия с новым файлом безопасность таже
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33254085
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сменить Уровень Безопасности эксел
В реестре изменить значение параметра:
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\Level
Если такового ключа нет - добавить.
Тупо, но должно сработать.

насчет всяких сертификатов не скажу.
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33254261
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП сменить Уровень Безопасности эксел
Dim secAutomation As MsoAutomationSecurity

secAutomation = Application.AutomationSecurity

Application.AutomationSecurity = msoAutomationSecurityForceDisable
Application.FileDialog(msoFileDialogOpen).Show

Dim fn As String

fn = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)
Application.Workbooks.Open fn
Application.AutomationSecurity = secAutomation.

не работает может чего то не хватает?
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33254285
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vkodor
Весело Вы цитируете - начало сообщение моё, а дальше нифига не моё :)
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33255758
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ЛП

сенькс.
здорово
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33255787
Вчера вечером попробовал на Excel 2002. Свойство AutomationSecurity меняет уровень только для окрытой книги. Других свойств, которые могли бы отвечать за управление уровнем безопасности я не нашел. По-видимому, только через реестр.
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33255802
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот код понижения уровня безопасности до низкого
если кому надо

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
On Error Resume Next
Dim OShell
Set OShell = CreateObject("WScript.Shell")
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\Level",  2 , "REG_DWORD"
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Security\Level",  2 , "REG_DWORD"
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Excel\Security\Level",  2 , "REG_DWORD"

Set OShell = Nothing

эх, хорошо бы еще подпись
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33255922
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейКвот код понижения уровня безопасности до низкого
если кому надо

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
On Error Resume Next
Dim OShell
Set OShell = CreateObject("WScript.Shell")
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\Level",  2 , "REG_DWORD"
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Security\Level",  2 , "REG_DWORD"
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Excel\Security\Level",  2 , "REG_DWORD"

Set OShell = Nothing

эх, хорошо бы еще подпись

класно спасибо давно искал
есть задумка из внешней проге включать макро и тогда можно ... Ух.
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33256207
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вирусотрояны чтоль?

если есть возможность выполнять код внешней проги то
зачем нужен эксель ????.....
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33256583
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейКвирусотрояны чтоль?

если есть возможность выполнять код внешней проги то
зачем нужен эксель ????.....
элементарно
политика компании по безопасности компов такова
что после перезагрузки макро автоматически отключается
у меня много .xls в которых auto_open многое настраивает
одно разрешает другое запрещает и т. д.

написал .vbs положил в автозагрузку уже проще.
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33264626
Фотография Jetus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkodor АлексейКвот код понижения уровня безопасности до низкого
если кому надо

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
On Error Resume Next
Dim OShell
Set OShell = CreateObject("WScript.Shell")
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\Level",  2 , "REG_DWORD"
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Security\Level",  2 , "REG_DWORD"
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Excel\Security\Level",  2 , "REG_DWORD"

Set OShell = Nothing

эх, хорошо бы еще подпись

класно спасибо давно искал
есть задумка из внешней проге включать макро и тогда можно ... Ух.

Вся проблема в том, что если этот код запускается из макроса, то хоть он и меняет данные в реестре, то при выходе из Экселя они вновь становятся теми же (Эксель при завершении работы сохраняет туда текущие настройки, а они-то не меняются!)
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33847685
Юра613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте

fn = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)

не знаете, почему у меня в этом месте ошибка возникла?

И можно уточнить, это код
авторOn Error Resume Next
Dim OShell
Set OShell = CreateObject("WScript.Shell")
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\Level", 2, "REG_DWORD"
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Security\Level", 2, "REG_DWORD"
OShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Excel\Security\Level", 2, "REG_DWORD"

Set OShell = Nothingнадо в модуле писать или в private sub workbook_open&
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33847817
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юра613Здравствуйте

fn = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)

не знаете, почему у меня в этом месте ошибка возникла?

Очень требуется совет специалистов
Юра613
И можно уточнить, это код
авторOn Error Resume Next
Dim OShell
Set OShell = CreateObject("WScript.Shell")
OShell.RegWrite "HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\11.0\\Excel\\Security\\Level", 2, "REG_DWORD"
OShell.RegWrite "HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\10.0\\Excel\\Security\\Level", 2, "REG_DWORD"
OShell.RegWrite "HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\9.0\\Excel\\Security\\Level", 2, "REG_DWORD"

Set OShell = Nothingнадо в модуле писать или в private sub workbook_open&
пишишь это в текстовом файле
после закрытия файла меняешь расширение с ".txt" на ".vbs"
кладешь полученный файл в автозагрузку "Windows" и всё.
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33847843
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Юра613Здравствуйте

fn = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)

не знаете, почему у меня в этом месте ошибка возникла?
Какая ошибка, какая версия Excel? Если 2000-й, то там нет такого объекта.
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33847969
Юра613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fn = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)
с этим мест уже проблем нет, разобрался

но тут возникло другая проблема.
Как мне кажется, если можно программным путем выставить высокий уровень безопасности, то можно и низкий.
Как я понял код это работает только если уровень безопасности или средний или низкий.
В итоге если возможно сделать низкую защиту таким же образом(при помощи вба),то при высокой защите это будет невозможно.

для чего я спрашиваю.
Я рассылаю экселевские файлы для отчета(сбор информации) Я делал по простому, рисовал таблицу, выделял цветом важные места и обязательные для заполнения, и блокировал те зоны в которых ничего писать не надо. Но в итоге люди или заполняют ячейки неправильно или вообще не заполняют. Поэтому я решил сделать тот же Экселевский файл в котором при открытии будет появляться форма. В эту форму нужно будет вводить необходимую информацию и если что то будет не правильно или не хватать информации то форма будет "ругаться". Потом при нажатии кнопки все будет записываться на лист.Но если у о пользователей будет стоять вывсокий уровень защиты то все мои старания коту под хвост.
Также не удобно рассылать изменненный текстовой файл(проще попросить поставить низкий уровень безопасности)
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33848107
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юра613fn = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)
с этим мест уже проблем нет, разобрался

но тут возникло другая проблема.
Как мне кажется, если можно программным путем выставить высокий уровень безопасности, то можно и низкий.
Как я понял код это работает только если уровень безопасности или средний или низкий.
В итоге если возможно сделать низкую защиту таким же образом(при помощи вба),то при высокой защите это будет невозможно.

для чего я спрашиваю.
Я рассылаю экселевские файлы для отчета(сбор информации) Я делал по простому, рисовал таблицу, выделял цветом важные места и обязательные для заполнения, и блокировал те зоны в которых ничего писать не надо. Но в итоге люди или заполняют ячейки неправильно или вообще не заполняют. Поэтому я решил сделать тот же Экселевский файл в котором при открытии будет появляться форма. В эту форму нужно будет вводить необходимую информацию и если что то будет не правильно или не хватать информации то форма будет "ругаться". Потом при нажатии кнопки все будет записываться на лист.Но если у о пользователей будет стоять вывсокий уровень защиты то все мои старания коту под хвост.
Также не удобно рассылать изменненный текстовой файл(проще попросить поставить низкий уровень безопасности)
примерно такой же вопрос сдесь уже обсуждался
пришли вот к чему
на листе который будет при открытии виден вставяется во весь экран надпись
типа "У вас отключены макросы и поэтому файл работать не будет",
а в событии "Private Sub Workbook_Open()"
прописан код который убирает эту надпись.
получается следующее:
если макросы отключены, то все нормально, а
если макросы не отключены то пользователь видит эту надпись.
Вообще с этим можно поиграться например
изночально поставить защиту на все листы, а при открытии в событии
"Private Sub Workbook_Open()"
прописать код снятия защиты
что-то типа
For Each Sh In ThisWorkbook.Worksheets
Sh.Unprotect "123"
Next
соответственно при закрытии д.б. ("Private Sub Workbook_BeforeClose(Cancel As Boolean)")
For Each Sh In ThisWorkbook.Worksheets
Sh.Protect "123"
Next
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33848213
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkodor
получается следующее:
если макросы отключены, то все нормально, а
если макросы не отключены то пользователь видит эту надпись.

извиняюсь перепутал
читать надо так

получается следующее:
если макросы не отключены, то все нормально, а
если макросы отключены то пользователь видит эту надпись.

жаль что сообщение редактировать нельзя
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #33848355
Юра613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятно, приблизительно так же я себе это и представлял.
А нельзя ли сделать так:
Вы говорили про написание текстового файла, который отключает уровень безопасности. Можно ли сделат так чтоб при запуске Экселевского файла запускался этот сначала текстовой файл,а потом уже макрос во всю работал.
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #34118971
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как в итоге выглядит макрос со всеми условиями, чтобы это работало в экселе?
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #34119223
Юра613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я сразу думал,что то вроде

file.open (ща точно не помню как эти файлы запускать)
но все равно какой бы то макрос не был он работать не будет при высоком уровне безопасности. Надо какую то надстройку делать. НАпример сохранить экселевский файл как надстройку(с надстройкой макросы помоему работают)а еще можно может через какое нибудь ВБ приложение запустить(или другим языком программирования воспользоваться),но все это будет работать только на дном компе, а если рассылать это приложение то нужно писать сетап.а офисных прогах это не реально. (вроде все правильно написал, если что то сильно не ругайте, а укажите где я ошибся)
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #34413830
DrugON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, что задам неграмотный, возможно, вопрос. Создал текстовый файл, разрешение изменил. Запускаю - уровень безопасности не меняется. На рабочей машине нет прав админа и, соответственно, прав изменения реестра. Может из-за этого не работает? Помогите победить проблему, пожалуйста.
...
Рейтинг: 0 / 0
программно Уровень Безопасности
    #34416472
JimOrange
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DrugONНа рабочей машине нет прав админа и, соответственно, прав изменения реестра.
Это жестоко... Это что же получается, юзер Administrator забыл пароль?
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / программно Уровень Безопасности
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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