Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макросы в экселе / 25 сообщений из 40, страница 1 из 2
10.06.2010, 12:56
    #36680402
pepel222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
Вопрос такой
в файле есть макросы, выслыаю коллегам уних сразу они снимаются, т.к. стоит высокий уровень защиты
постоянно просить, чтобы ставили низкий уровень нереал

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

Если это Excel 2007, то следует настроить доверенные источники.
Для 2003 подойдет цифровая подпись макросов.
...
Рейтинг: 0 / 0
10.06.2010, 14:53
    #36680794
pepel222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
big-duke,
файл могут открывать в различных версиях эксель
что нужно и куда прописать?
...
Рейтинг: 0 / 0
10.06.2010, 19:48
    #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
15.06.2010, 17:41
    #36688316
pepel222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
народец помогите
как быть ...
...
Рейтинг: 0 / 0
15.06.2010, 18:32
    #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
15.06.2010, 20:26
    #36688577
vikttur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
Старый совет: при отключенных макросах вся информация скрыта, виден только лист с большим кулаком или грозящим пальцем, надписью «Включи макросы!!!» и подсказкой, где их включить; при низком уровне безопасности кулака не видно, все нормальненько работает :)
...
Рейтинг: 0 / 0
16.06.2010, 08:59
    #36689144
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
интересная тема
я раньше защищал свои файлы примерно так

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

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

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


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

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

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

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

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

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

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

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


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


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

secAutomation = Application.AutomationSecurity

Application.AutomationSecurity = msoAutomationSecurityLow
...
Рейтинг: 0 / 0
16.06.2010, 12:05
    #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
16.06.2010, 12:10
    #36689614
pepel222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
_slan_
по этому и прошу помощи
может предложите раб вариант?
буду признателен
...
Рейтинг: 0 / 0
16.06.2010, 12:15
    #36689632
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
pepel222
Hugo121 , скрипт который написали не меняет безопасность ...
Вариант Hugo121 и не должен менять безопасность, оно просто открывает нужный файл и в нём запускает нужный макрос независимо от уровня безопасности.
...
Рейтинг: 0 / 0
16.06.2010, 12:16
    #36689634
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
pepel222,
так я спрашиваю у Hugo121.. так прямо, в общем-то и пишу..

сам в скриптах не очень, это лишь моя догадка, потому и сослагательное наклонение..
...
Рейтинг: 0 / 0
16.06.2010, 12:26
    #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
16.06.2010, 13:09
    #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
16.06.2010, 15:37
    #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
16.06.2010, 16:22
    #36690498
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
leoway,
ну да, Dim можно и добавить, но не обязательно.
название файла - CompareFiles.Find.Rus.v107.xls
запускаемый макрос - CompareFiles
Меняете эти названия на свои, этот код сохраняете как *.vbs, запускаете даблкликом.
Но в системе может быть отключен запуск таких скриптов, для проверки запустите приложение :)
...
Рейтинг: 0 / 0
16.06.2010, 16:44
    #36690566
pepel222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
Hugo121 ,
что-то я в ступоре...
как мне прекрепить файл vbs чтобы он на автомате с эксель
...
Рейтинг: 0 / 0
16.06.2010, 16:59
    #36690635
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
pepel222,
прикрепить никак. Посылайте в паре. А что делать? :)
...
Рейтинг: 0 / 0
16.06.2010, 17:01
    #36690644
pepel222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макросы в экселе
Hugo121,

как-то прописывать в эксель...
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макросы в экселе / 25 сообщений из 40, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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