Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/64: Рейтинг темы: голосов - 64, средняя оценка - 4.81
2 / 2 / 1
Регистрация: 07.06.2011
Сообщений: 95

Обойти запрет запуска макроса

20.06.2011, 11:56. Показов 13119. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Понимаю вопрос скорей не совсем умный...
Проблема в следующем можно ли каким либо образом обойти защиту офиса при запуске макроса, т.е. например при открытии документа у меня должно всплыть окно диалога, но... если в (для 2003) сервис-макрос-безопасность стоит отключить макросы, то ничего не всплывет, кроме предупреждения что документ содержит макрос.
Собсно вопрос, можно ли сделать так чтобы окно дилог окна всплывала в любом случае??
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.06.2011, 11:56
Ответы с готовыми решениями:

Запрет на работу макроса из другой книги
добрый день, как можно поставить запрет на запуск любых макросов из других книг? Т.е. у меня октрыты 2 книги: А и Б. В книге Б есть...

Повторение запуска макроса каждую минуту
Dobyi denj! Kak mozno sdelatj, 4toby makros zapuskalsja kazduju minutu?? 4erez "Ontime" ne polu4ilosj... Zaraneje...

Не хватает библиотеки для запуска макроса
Ошибка при попытке запустить макрос. Не хватает библиотеки. Какой?Помогите пожалуйста разобраться. Лист 2

21
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
20.06.2011, 13:30
ara_gorn,
именно окно Excel или можно, чтобы всплывало пользовательское окно (MsgBox)?
0
2 / 2 / 1
Регистрация: 07.06.2011
Сообщений: 95
20.06.2011, 13:43  [ТС]
что бы всплывало пользовательское окно, которое и определяет, можно ли загрузить документ дальше
0
 Аватар для dzug
695 / 236 / 18
Регистрация: 17.01.2011
Сообщений: 583
Записей в блоге: 1
20.06.2011, 14:43
Сохраняйте Ваши программы в надстройках .XLA . Например Моя.XLA
Ускорение макроса
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
20.06.2011, 15:42
Цитата Сообщение от ara_gorn Посмотреть сообщение
можно ли загрузить документ дальше
документ можно закрыть, т.к. он уже будет загружен.
0
2 / 2 / 1
Регистрация: 07.06.2011
Сообщений: 95
20.06.2011, 17:39  [ТС]
мне не нужно закрывать, например при загрузке документа, всплывает окошко где я ставлю галочки, и в зависимости от выбора скрываются или отображаются листы, а вот если МАКРОСЫ ОТКЛЮЧЕНЫ, то ничерта не всплывет, и будут отображаться все листы!! мне надо обойти этот запрет на запуск макросов
0
2053 / 483 / 133
Регистрация: 13.11.2008
Сообщений: 922
20.06.2011, 17:57
В своей книге создаете лист, в котором нет ничего, кроме надписи типа:
Если Вы видите этот лист, значит работать с файлом не получится, т.к. у Вас запрещены макросы. И далее инструкция как их разрешить."
Далее прописываете на открытие книги доп. код, который запускает форму.
На закрытие книги ОБЯЗАТЕЛЬНО пишите код, который скрывает все листы, кроме листа с предупреждением. Следовательно, если макросы отключены - пользователь увидит Ваш лист с супер-надписью. Если же включены - как Вы и хотели форму выбора листов.

Листы перед закрытием лучше делать очень скрытыми. Чтобы нельзя было отобразить через меню.
0
2 / 2 / 1
Регистрация: 07.06.2011
Сообщений: 95
20.06.2011, 19:23  [ТС]
не хочу показаться не вежливым, данный предложенный способ (со скрытием листов) уже и и без вас найден, проблема в том что должно быть без разници включены макросы или нет, должна отобразится форма, с надстройкой это еще вариант, а остальные подобные проверки включены ли макросы меня мало интересуют
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
20.06.2011, 20:21
ara_gorn,
т.е. у вас в каждой книге есть макрос, вы открываете эту книгу и макрос не запускается?
Тогда получается, что макрос должен находиться в PERSONAL. Или это не подходит?
0
2053 / 483 / 133
Регистрация: 13.11.2008
Сообщений: 922
20.06.2011, 20:27
Цитата Сообщение от ara_gorn Посмотреть сообщение
не хочу показаться не вежливым, данный предложенный способ (со скрытием листов) уже и и без вас найден, проблема в том что должно быть без разници включены макросы или нет, должна отобразится форма, с надстройкой это еще вариант, а остальные подобные проверки включены ли макросы меня мало интересуют
А не кажется ли Вам, что обо всем этом сразу надо было бы написать? Или Вы хотели посмотреть сколько методов предложат? Не очень вежливо, Вам не кажется?

Самый реальный метод: ставите пароль на открытие файла. Затем пишите VBS скрипт, который открывает именно этот файл(при открытии он прописывает пароль). Открывает в режиме с разрешенными макросами. Если не устраивает скрипт, который может быть элементарно взломан знающими людьми - то делайте .exe приложение для этой цели.
Я делал так - многих устраивает. По большому счету без разницы жать два раза на файл Excel или файл скрипта.
1
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
20.06.2011, 20:36
Цитата Сообщение от The_Prist Посмотреть сообщение
то делайте .exe приложение для этой цели
имхо, реально подходяший метод
а все (или почти все), что сделано в екселе,- можно рассмотреть при желании
0
2 / 2 / 1
Регистрация: 07.06.2011
Сообщений: 95
21.06.2011, 00:41  [ТС]
Цитата Сообщение от The_Prist Посмотреть сообщение
А не кажется ли Вам, что обо всем этом сразу надо было бы написать? Или Вы хотели посмотреть сколько методов предложат? Не очень вежливо, Вам не кажется?

Самый реальный метод: ставите пароль на открытие файла. Затем пишите VBS скрипт, который открывает именно этот файл(при открытии он прописывает пароль). Открывает в режиме с разрешенными макросами. Если не устраивает скрипт, который может быть элементарно взломан знающими людьми - то делайте .exe приложение для этой цели.
Я делал так - многих устраивает. По большому счету без разницы жать два раза на файл Excel или файл скрипта.
не хотел никого задеть,
к мысле написать exe файл уже пришел,
можно вопрос, что не понятно в моем сообщении
но... если в (для 2003) сервис-макрос-безопасность стоит отключить макросы, то ничего не всплывет, кроме предупреждения что документ содержит макрос.
а требовалось
т.е. например при открытии документа у меня должно всплыть окно диалога
даже если макросы отключены

единствееное, я извиняюсь, не дал уточнение:
смысл открытия диалог окна, дать или закрыть доступ к определенному файлу, просто очень не хотелось писать exe
еще раз извиняюсь, если кому то мои уточнения показались обидными (читаем пункт первый )

Добавлено через 12 минут
Открывает в режиме с разрешенными макросами
кстате а как это сделать из VB, как я понял документ можно открыть в режиме с разрешенными макросами, даже если в безопасности стоит запрет на запуск макросов? или я чего то не так понял?

Добавлено через 2 часа 49 минут
я тут в нете покопался и вот что нашел
в редакторе VBA в меню:
Tools/VBAProject Properties.../
Ставим птицу заблокировать просмотр, указываем пароль. всё - осторонние не посмотрят код, не поправят
помогите написать процедуру блокирующую доступ к редактору VBA и разблокирующую в одном конкретном документе, плиз
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
21.06.2011, 06:37
Насколько мне известно если в офисе установлен запрет на запуск макросов, то снять его можно только ручками: макросы же запрещены!
0
2053 / 483 / 133
Регистрация: 13.11.2008
Сообщений: 922
21.06.2011, 09:58
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Вот текст VBS скрипта:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub test() 
    Dim objXL
    Dim Secur
    Set objXL = CreateObject("Excel.Application") 
    objXL.Visible = TRUE
    secur = objXL.AutomationSecurity
    objXL.AutomationSecurity = 1
    objXL.Workbooks.Open replace(Wscript.ScriptFullName,".vbs",".xls"),,,,"4321"
    objXL.AutomationSecurity = secur
End Sub
Открывает книгу, имя которой совпадает с именем самого скрипта. Т.е. если скрипт назван Test.vbs, то книга должна быть названа Test.xls. Можно заменить на статичное. На книге установлен пароль на открытие(4321), так что при попытке открыть файл не скриптом ничего не получится.
Состряпать из этого exe-файл нет сложностей - принцип тот же. Код для Exe:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Load()
    Dim objXL As Object
    Dim lSecur As Long
    Set objXL = CreateObject("Excel.Application")
    objXL.Visible = True
    lSecur = objXL.AutomationSecurity
    objXL.AutomationSecurity = 1
    objXL.Workbooks.Open App.Path & "\" & App.EXEName & ".xls", , , , "4321"
    objXL.AutomationSecurity = lSecur
    Set objXL = Nothing
    Unload Me
End Sub
Во вложении файл Exe. Будет запущен файл Excel из той же папки, что и папка с файлом exe и с тем же именем, что и у exe.
Пароль на файл либо не установлен, либо 4321.
Вложения
Тип файла: rar Run_with_Macro.rar (3.3 Кб, 116 просмотров)
3
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
21.06.2011, 10:58
Что-то я не улавливаю связи между:
но... если в (для 2003) сервис-макрос-безопасность стоит отключить макросы,
и
На книге установлен пароль на открытие(4321),
Как в фильмах говорят: читай по губам: вопрос-то звучал совсем из другой оперы
мне надо обойти этот запрет на запуск макросов
.
или я чего-то не понимаю?
0
2 / 2 / 1
Регистрация: 07.06.2011
Сообщений: 95
21.06.2011, 15:07  [ТС]
все равно, всем спасибо, в принципе запрет обойти видимо нельзя, но это уже и не важно, как говориться всем кому надо включат макросы (а кому не надо, умеют их писать сами )
0
2053 / 483 / 133
Регистрация: 13.11.2008
Сообщений: 922
21.06.2011, 15:46
Цитата Сообщение от Alex77755 Посмотреть сообщение
и
Как в фильмах говорят: читай по губам: вопрос-то звучал совсем из другой оперы
.
или я чего-то не понимаю?
Вы не понимаете.
Процитирую себя:
Самый реальный метод: ставите пароль на открытие файла. Затем пишите VBS скрипт, который открывает именно этот файл(при открытии он прописывает пароль). Открывает в режиме с разрешенными макросами. Если не устраивает скрипт, который может быть элементарно взломан знающими людьми - то делайте .exe приложение для этой цели.
Т.е. если открывать файл не через скрипт или exe, то не зная пароль его вообще не открыть. А если открывать через срипт или exe, то он откроется в Excel с разрешенными макросами. Вот так вот. Попробуйте файл, который я выложил и поймете.
Прелесть такого метода в том, что взламывать exe - сложно. Так же очень сложно взломать хороший пароль на открытие файла Excel, т.к. там 126-разрядное шифрование по алгоритму AES.
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
22.06.2011, 21:19
Метод не плохой, но открытый файл можно сохранить с удалением пароля!
0
2053 / 483 / 133
Регистрация: 13.11.2008
Сообщений: 922
22.06.2011, 21:26
Цитата Сообщение от toiai Посмотреть сообщение
Метод не плохой, но открытый файл можно сохранить с удалением пароля!
А никто не говорил, что нужна защита документа в дальнейшем. Вопрос стоял в запуске с макросами.
Если уж очень хочется много всяких примочек(в том числе запрет на пересохранение) - пропишите макросы на событие сохранения книги, закрытия и т.д., которые при наступления данного события будут в обязательном порядке устанавливать нужный Вам пароль. Проект VBA защитить.
0
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
15.10.2016, 13:51
Цитата Сообщение от The_Prist Посмотреть сообщение
Состряпать из этого exe-файл нет сложностей - принцип тот же. Код для Exe:
С помощью какой программы можно сделать exe-файл, на основании данного кода?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2016, 13:51
Помогаю со студенческими работами здесь

Создание условия для запуска макроса
Доброго времени суток! Прошу помочь решить такую вот задачку. В таблице Экзеля ячейка А1 один содержит в себе изменяющиеся значения,...

Запуска макроса для выделения при открытии документа
Доброго времени суток. Подскажите с таким вопросом. Есть код для выделения координат выделенной ячейки. Он запускается при нажатии...

Адаптация макроса Excel для запуска из приложения Access
Добрый день! Имеем: запрос в MS Access, сохраняющий результат в Excel- файле, макрос окрашивания ячеек в VBA Excel. Как возможно прописать...

Настройка кнопки запуска макроса на панели быстрого доступа
Есть макрос в экселе, вынес его на панель быстрого доступа. Как-нибудь можно сделать, чтобы эта кнопка висела только в текущем документе,...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru