powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макросы в экселе
40 сообщений из 40, показаны все 2 страниц
Макросы в экселе
    #36680402
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос такой
в файле есть макросы, выслыаю коллегам уних сразу они снимаются, т.к. стоит высокий уровень защиты
постоянно просить, чтобы ставили низкий уровень нереал

как прописать так, чтобы коллеги открывали файл в экслеь сразу с макросами без лишних вопросов?
...
Рейтинг: 0 / 0
Макросы в экселе
    #36680501
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pepel222,

Если это Excel 2007, то следует настроить доверенные источники.
Для 2003 подойдет цифровая подпись макросов.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36680794
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-duke,
файл могут открывать в различных версиях эксель
что нужно и куда прописать?
...
Рейтинг: 0 / 0
Макросы в экселе
    #36681518
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dim secAutomation As MsoAutomationSecurity

secAutomation = Application.AutomationSecurity

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

Dim fn As String

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

прописал такой макрос
но он почему-то не срабатывает, если в экселе стоит высокая степень защиты макросов
подскажите что подкорректировать?
...
Рейтинг: 0 / 0
Макросы в экселе
    #36688316
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
народец помогите
как быть ...
...
Рейтинг: 0 / 0
Макросы в экселе
    #36688410
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pepel222,
попробуйте vbs скрипт, запускать из папки с Вашим файлом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Option Explicit
Dim objFSO, objExcel, ExcelPath, wb

Set objFSO = CreateObject("Scripting.FileSystemObject") 
ExcelPath = objFSO.GetParentFolderName(WScript.ScriptFullName) 
Set objExcel = CreateObject("Excel.Application")
Set wb = objExcel.Workbooks.Open (ExcelPath & "\Вашфайл.xls")
objExcel.Visible = True
Set objExcel = Nothing
...
Рейтинг: 0 / 0
Макросы в экселе
    #36688577
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый совет: при отключенных макросах вся информация скрыта, виден только лист с большим кулаком или грозящим пальцем, надписью «Включи макросы!!!» и подсказкой, где их включить; при низком уровне безопасности кулака не видно, все нормальненько работает :)
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689144
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересная тема
я раньше защищал свои файлы примерно так

На листе 3 формула, которая зависит от макросов, вставлена в ячейку с поименованным диапазоном. Если макросы включены, то формула возвращает true, иначе ошибку.

Лист конечно лучше скрыть и защитить кодом.

на первом листе на Ваш выбор все формулы
- либо содержат проверку контрольного значения (вариант в строке 1), если макросы отключены, возвращают ошибку. Такой вариант подойдет если у Вас идет защита листа со скрытыми формулами.


- либо условное форматирование подсвечивает результат в случае адекватности контрольного значения
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689425
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121 - увы не работает
Shamanus - посмотрю
спс
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689443
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pepel222Hugo121 - увы не работает
Shamanus - посмотрю
спс

отпишитесь если несложно

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

Ну т.е. любой разовый запуск макроса и зеленая дорога в будущем.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689486
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shamanus ,
посмотрел Ваш файлик - сделано прикольно, но обойти не получается
чтобы сразу отключить

тоже слышал, что засчет макроса можно поменять в реестре ключик на низкий уровень безопасности
но где бы это нарыть и чтобы главное работало ....
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689515
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pepel222,

специально для Вас порылся в прошлых работах

вот файлик, который меняет ключ реестра на нужный, только он работает для офиса 11, то бишь 2003 офис, в 2007 этого ключика нет. Я у себя уже посмотрел.

Как откорректировать реестр средствами VBA думаю гугл подскажет, на крайняк можно операционную систему заставить незаметно этот файл запустить.


а вот тут не пойму, что Вы имеете ввиду
pepel222
Shamanus ,
посмотрел Ваш файлик - сделано прикольно, но обойти не получается
чтобы сразу отключить
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689559
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pepel222Hugo121 - увы не работает


Что именно не работает - файл не открывает, или файл открылся, а макросы в нём не работают?
Правда у меня тольк 2000 офис доступен, в нём работет.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689597
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121, а где в скрипте включаются макросы? не надо ли туда вставить после инициализации приложения строки

secAutomation = Application.AutomationSecurity

Application.AutomationSecurity = msoAutomationSecurityLow
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689598
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нашел такой макрос
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

но блин не меняет увы уровень защиты ...


Hugo121 , скрипт который написали не меняет безопасность ...
Shamanus , имел в виду что, не обойти сразу проблему понижения безопасности, за счета файла с имз реестром, не покатит, клиента его запускать не будут =(((

надо что-то придумать
чтобы при открытии файла экслель понижалась безопасность макросов, чтобы они всегда работали
вот в чем вопрос
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689614
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_slan_
по этому и прошу помощи
может предложите раб вариант?
буду признателен
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689632
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pepel222
Hugo121 , скрипт который написали не меняет безопасность ...
Вариант Hugo121 и не должен менять безопасность, оно просто открывает нужный файл и в нём запускает нужный макрос независимо от уровня безопасности.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689634
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pepel222,
так я спрашиваю у Hugo121.. так прямо, в общем-то и пишу..

сам в скриптах не очень, это лишь моя догадка, потому и сослагательное наклонение..
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689673
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pepel222нашел такой макрос
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

но блин не меняет увы уровень защиты ...



Зайдите в excel, сделайте высокую безопасность макросов.
Запустите мой файл, который предлагает изменить реестр.
Запустите excel посмотрите изменился ли уровень безопасности
...
Рейтинг: 0 / 0
Макросы в экселе
    #36689829
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тут чуть занят был, извините.
Да, мой код просто открывает файл с разрешёнными макросами, т.е. они будут работать. Если есть код на открытие файла, он запустится. Если надо принудительно запустить код из модуля файла, то вот, пример из старого рабочего проекта, после открытия файла срабатывает код "CompareFiles":
Код: plaintext
1.
2.
3.
4.
5.
6.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objShellApp = CreateObject("Shell.Application") 
ExcelPath = objFSO.GetParentFolderName(WScript.ScriptFullName) 
Set objExcel = CreateObject("Excel.Application"): Set wb = objExcel.Workbooks.Open (ExcelPath & "\CompareFiles.Find.Rus.v107.xls")
objExcel.Visible = True
objExcel.Application.OnTime Now, "CompareFiles"
Set objExcel = Nothing
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690331
leoway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121Я тут чуть занят был, извините.
Да, мой код просто открывает файл с разрешёнными макросами, т.е. они будут работать. Если есть код на открытие файла, он запустится. Если надо принудительно запустить код из модуля файла, то вот, пример из старого рабочего проекта, после открытия файла срабатывает код "CompareFiles":
Код: plaintext
1.
2.
3.
4.
5.
6.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objShellApp = CreateObject("Shell.Application") 
ExcelPath = objFSO.GetParentFolderName(WScript.ScriptFullName) 
Set objExcel = CreateObject("Excel.Application"): Set wb = objExcel.Workbooks.Open (ExcelPath & "\CompareFiles.Find.Rus.v107.xls")
objExcel.Visible = True
objExcel.Application.OnTime Now, "CompareFiles"
Set objExcel = Nothing


Подскажи, что здесь что?

я так понимаю что не хватает:

Option Explicit
Dim objFSO, objShellApp, objExcel, ExcelPath, wb

где здесь название файла, а где запускаемый макрос.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690498
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
leoway,
ну да, Dim можно и добавить, но не обязательно.
название файла - CompareFiles.Find.Rus.v107.xls
запускаемый макрос - CompareFiles
Меняете эти названия на свои, этот код сохраняете как *.vbs, запускаете даблкликом.
Но в системе может быть отключен запуск таких скриптов, для проверки запустите приложение :)
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690566
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121 ,
что-то я в ступоре...
как мне прекрепить файл vbs чтобы он на автомате с эксель
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690635
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pepel222,
прикрепить никак. Посылайте в паре. А что делать? :)
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690644
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121,

как-то прописывать в эксель...
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690666
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pepel222, так ведь пока макросы отключены, как из Экселя запустишь?
Можно в архив запаковать самозапускаемый, типа инсталлятора. Сразу установится и макросы включит. Но я бы так не делал, некорректно к юзеру кодом в систему лезть.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690677
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Но я бы так не делал, некорректно к юзеру кодом в систему лезть.

а некоторые антивири на это шибко ругаются
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690707
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121,

я про то
буду думать
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690736
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pepel222,

так а excel какой у вас ?
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690751
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pepel222,

если я верно понял, Вы хотите, чтобы пользователь запустил файл xls и сразу включились макросы на минимальный уровень.

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

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

Иного не дано.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690752
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-duke,
сейчас окажется, что на 2007/10 и не работает эта штука... Я говорил, у меня только 2000 доступен, проверить-то недолго, но негде.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690759
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121,

я позже могу проверить
у меня 2007
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690861
pepel222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-duke,
может быть любой, т.к. высылать клиентам

Shamanus ,
"при первом запуске включает макросы ручками, а дальше Ваша власть." - поясните как сделать или прописать?
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690901
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pepel222big-duke,
может быть любой, т.к. высылать клиентам

Shamanus ,
"при первом запуске включает макросы ручками, а дальше Ваша власть." - поясните как сделать или прописать?

Первое это напишите какая версия офиса, 2000-2003 (он же XP)-2007-2010

Второе сделайте проверку того, что написано тут.

Если получится, то вот этот код решит Вашу проблему

Код: plaintext
Sub my()\nOn Error Resume Next\nDim OShell\nSet OShell = CreateObject("WScript.Shell")\nOShell.RegWrite "HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\11.0\\Excel\\Security\\Level",  3 , "REG_DWORD"\nSet OShell = Nothing\nEnd Sub

поставьте его на событие Workbook_open и все.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36690909
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не увидел эту фразу.

pepel222big-duke,
может быть любой, т.к. высылать клиентам

код не сработает в версиях старше 2007.

Там другая концепция безопасности. Нужно проводить эксперименты. Это время.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36691375
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pepel222, мой совет вначале темы не нравится?
...
Рейтинг: 0 / 0
Макросы в экселе
    #36691780
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для 2007 и 2010 нужно настроить доверенные источники в центре управления безопасностью. И все, никаких макросов.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36691787
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для остальных версий я сделал бы так
1. В ячейке A1 пишем "Для корректной работы необходимо включить макросы."
2. В коде пишем
Код: plaintext
1.
2.
3.
Private Sub Workbook_Open()
    Worksheets( 1 ).Range("A1").Value = ""
End Sub
Идея , надеюсь понятна.
...
Рейтинг: 0 / 0
Макросы в экселе
    #36700252
diaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121pepel222,
попробуйте vbs скрипт, запускать из папки с Вашим файлом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Option Explicit
Dim objFSO, objExcel, ExcelPath, wb

Set objFSO = CreateObject("Scripting.FileSystemObject") 
ExcelPath = objFSO.GetParentFolderName(WScript.ScriptFullName) 
Set objExcel = CreateObject("Excel.Application")
Set wb = objExcel.Workbooks.Open (ExcelPath & "\Вашфайл.xls")
objExcel.Visible = True
Set objExcel = Nothing

Супер, этот код мне очень помог, спасибо.
У меня правда немного другая проблема была. Почему-то никак руками не мог выставить у себя на работе низкий уровень безопасности, даже после того как получил права локального администратора.( правда может быть ограниченные, т.к. код который был тут в теме приведен для изменения значения реестра не заработал)
...
Рейтинг: 0 / 0
Макросы в экселе
    #36700499
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
diaman,
ну вот, не зря писал значит.
Есть минус у этого способа - открывается новый экземпляр Экселя, без надстроек и PERSONAL.XLS.
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макросы в экселе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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