Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос для защиты от макросов - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Макрос для защиты от макросов
Irysha Дата: Четверг, 09.08.2012, 08:36 | Сообщение № 21
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 17 ±
Замечаний: 0% ±

2007,2013
Это актуально сразу после того, как всплывает запрос на пароль. Ежу же понятно, что подбирать пароли не стоит!
 
Ответить
СообщениеЭто актуально сразу после того, как всплывает запрос на пароль. Ежу же понятно, что подбирать пароли не стоит!

Автор - Irysha
Дата добавления - 09.08.2012 в 08:36
Pulse Дата: Четверг, 09.08.2012, 08:40 | Сообщение № 22
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 213
Репутация: 16 ±
Замечаний: 0% ±

2013
Irysha, в моём случае пользователь будет подбирать пароль.
 
Ответить
СообщениеIrysha, в моём случае пользователь будет подбирать пароль.

Автор - Pulse
Дата добавления - 09.08.2012 в 08:40
Hugo Дата: Четверг, 09.08.2012, 10:22 | Сообщение № 23
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Quote (Pulse)
Пытаться восстанавить файл не будут.

А я бы попытался, если бы мне это было важно.
Буквально вчера ещё раз проверил - Recover4All нашла и восстановила предыдущую версию файла, после того как были сделаны изменения и файл был сохранён. Т.к. в той тестовой локальной папке других версий не было, то я не скажу, сколько вариантов реально получилось бы вытянуть, но если бы файл лежал у нас на сервере, то средствами Novell таких версий можно восстановить немало, и без всяких ухищрений - пара кликов мышкой smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение
Quote (Pulse)
Пытаться восстанавить файл не будут.

А я бы попытался, если бы мне это было важно.
Буквально вчера ещё раз проверил - Recover4All нашла и восстановила предыдущую версию файла, после того как были сделаны изменения и файл был сохранён. Т.к. в той тестовой локальной папке других версий не было, то я не скажу, сколько вариантов реально получилось бы вытянуть, но если бы файл лежал у нас на сервере, то средствами Novell таких версий можно восстановить немало, и без всяких ухищрений - пара кликов мышкой smile

Автор - Hugo
Дата добавления - 09.08.2012 в 10:22
Pulse Дата: Четверг, 09.08.2012, 10:29 | Сообщение № 24
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 213
Репутация: 16 ±
Замечаний: 0% ±

2013
Hugo, , макрос буит иль нет?! smile Я надеюсь на первое.
Тот человек не будет ничего восстанавливать. 100%
 
Ответить
Сообщение Hugo, , макрос буит иль нет?! smile Я надеюсь на первое.
Тот человек не будет ничего восстанавливать. 100%

Автор - Pulse
Дата добавления - 09.08.2012 в 10:29
Hugo Дата: Четверг, 09.08.2012, 11:06 | Сообщение № 25
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Например бесхитростно можно так:

[vba]
Code
Private Sub auto_open()
     Dim pass$
     pass$ = "qwerty"
     If InputBox("Введите пароль (в нижнем регистре!)", "Запрос пароля", "pass") = pass Then
         Exit Sub
     Else
         If InputBox("Введите пароль в последний раз! (в нижнем регистре!)", "Запрос пароля повторно!", "pass") = pass Then
             Exit Sub
         Else
             Sheets(1).UsedRange.ClearContents
             ThisWorkbook.Save
         End If
     End If
End Sub
[/vba]Код поместите в стандартный модуль.

Как это отключить другим макросом - я не знаю (отключение событий не влияет).
Но вручную можно открыть книгу без макросов и поставить защиту на изменение книги, или просто в 2007/10 сохранить в формате xlsx.

Но думаю надёжнее и проще задать стандартно пароль на открытие файла - тогда уже или знаешь пароль, или нет sad
Правда количество попыток неограничено - можно неделю гонять brute-force smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНапример бесхитростно можно так:

[vba]
Code
Private Sub auto_open()
     Dim pass$
     pass$ = "qwerty"
     If InputBox("Введите пароль (в нижнем регистре!)", "Запрос пароля", "pass") = pass Then
         Exit Sub
     Else
         If InputBox("Введите пароль в последний раз! (в нижнем регистре!)", "Запрос пароля повторно!", "pass") = pass Then
             Exit Sub
         Else
             Sheets(1).UsedRange.ClearContents
             ThisWorkbook.Save
         End If
     End If
End Sub
[/vba]Код поместите в стандартный модуль.

Как это отключить другим макросом - я не знаю (отключение событий не влияет).
Но вручную можно открыть книгу без макросов и поставить защиту на изменение книги, или просто в 2007/10 сохранить в формате xlsx.

Но думаю надёжнее и проще задать стандартно пароль на открытие файла - тогда уже или знаешь пароль, или нет sad
Правда количество попыток неограничено - можно неделю гонять brute-force smile

Автор - Hugo
Дата добавления - 09.08.2012 в 11:06
Pulse Дата: Четверг, 09.08.2012, 11:46 | Сообщение № 26
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 213
Репутация: 16 ±
Замечаний: 0% ±

2013
Hugo, , ! Работает! Спасибо!


Сообщение отредактировал Pulse - Четверг, 09.08.2012, 12:20
 
Ответить
Сообщение Hugo, , ! Работает! Спасибо!

Автор - Pulse
Дата добавления - 09.08.2012 в 11:46
RAN Дата: Четверг, 09.08.2012, 12:51 | Сообщение № 27
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Pulse, это я говорил (про удаленное невозможно).
Для Excel 07/10.
Вставляете в имя своего файла слово "Книга" (дабы в код не лезть), запускаете мой файл, а потом - свой.
И наблюдаете результат в папке с вашим файлом. smile
К сообщению приложен файл: copy.xls (33.0 Kb)


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Четверг, 09.08.2012, 13:11
 
Ответить
СообщениеPulse, это я говорил (про удаленное невозможно).
Для Excel 07/10.
Вставляете в имя своего файла слово "Книга" (дабы в код не лезть), запускаете мой файл, а потом - свой.
И наблюдаете результат в папке с вашим файлом. smile

Автор - RAN
Дата добавления - 09.08.2012 в 12:51
Pulse Дата: Четверг, 09.08.2012, 13:02 | Сообщение № 28
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 213
Репутация: 16 ±
Замечаний: 0% ±

2013
RAN, вставил, запустил, и?
В папке появляется файл Книга.xlsmx который Excel-ем не открывается. Что бы там нибыло, это не мешает макросу, представленным выше выполнять то, что от него требовалось.
 
Ответить
СообщениеRAN, вставил, запустил, и?
В папке появляется файл Книга.xlsmx который Excel-ем не открывается. Что бы там нибыло, это не мешает макросу, представленным выше выполнять то, что от него требовалось.

Автор - Pulse
Дата добавления - 09.08.2012 в 13:02
RAN Дата: Четверг, 09.08.2012, 13:14 | Сообщение № 29
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Про xlsm не подумал. Перезалил и под него.
Quote (Pulse)
Что бы там нибыло, это не мешает макросу, представленным выше выполнять то, что от него требовалось.

Как насчет
Quote (Pulse)
Автоматически сохранял файл без возможности возврата. При том, чтобы нельзя было написать другой макрос обходящий эти условия.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПро xlsm не подумал. Перезалил и под него.
Quote (Pulse)
Что бы там нибыло, это не мешает макросу, представленным выше выполнять то, что от него требовалось.

Как насчет
Quote (Pulse)
Автоматически сохранял файл без возможности возврата. При том, чтобы нельзя было написать другой макрос обходящий эти условия.

Автор - RAN
Дата добавления - 09.08.2012 в 13:14
Pulse Дата: Четверг, 09.08.2012, 13:24 | Сообщение № 30
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 213
Репутация: 16 ±
Замечаний: 0% ±

2013
Quote (RAN)
Про xlsm не подумал. Перезалил и под него.

Макрос, который создаёт пустую книгу?!
 
Ответить
Сообщение
Quote (RAN)
Про xlsm не подумал. Перезалил и под него.

Макрос, который создаёт пустую книгу?!

Автор - Pulse
Дата добавления - 09.08.2012 в 13:24
RAN Дата: Четверг, 09.08.2012, 13:39 | Сообщение № 31
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Чуть погорячился. Тогда так.
К сообщению приложен файл: 6181024.xls (32.5 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЧуть погорячился. Тогда так.

Автор - RAN
Дата добавления - 09.08.2012 в 13:39
Pulse Дата: Четверг, 09.08.2012, 13:58 | Сообщение № 32
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 213
Репутация: 16 ±
Замечаний: 0% ±

2013
RAN, , Думаю тенденция к правоте в вашу или мою сторону несколько размыта и не позволяет установить истину, что впрочем не даёт поводов к уменьшению вашей репутации. )
 
Ответить
Сообщение RAN, , Думаю тенденция к правоте в вашу или мою сторону несколько размыта и не позволяет установить истину, что впрочем не даёт поводов к уменьшению вашей репутации. )

Автор - Pulse
Дата добавления - 09.08.2012 в 13:58
Hugo Дата: Четверг, 09.08.2012, 14:09 | Сообщение № 33
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Мне даже интересно - файл без макросов сохраняется в каком виде? Сам проверить не могу, нет тут 2007.
Кажется, должен всё равно последовать запрос, и после неверного пароля данные будут удалены.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеМне даже интересно - файл без макросов сохраняется в каком виде? Сам проверить не могу, нет тут 2007.
Кажется, должен всё равно последовать запрос, и после неверного пароля данные будут удалены.

Автор - Hugo
Дата добавления - 09.08.2012 в 14:09
Pulse Дата: Четверг, 09.08.2012, 14:20 | Сообщение № 34
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 213
Репутация: 16 ±
Замечаний: 0% ±

2013
Создаётся файл Книга.xlsx. Запрос на пароль не выдаётся. RAN постарался. smile
Вот код для xlsm: [vba]
Код
Private WithEvents App As Application

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
If ActiveWorkbook.Name Like "Книга*" Then
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Path & "\" & Split(ActiveWorkbook.Name, ".")(0) & ".xlsx", FileFormat:=51
ActiveWorkbook.Close False
Application.DisplayAlerts = True
End If
End Sub

Private Sub Workbook_Open()
Set App = Application
End Sub
[/vba]


Сообщение отредактировал Pulse - Четверг, 09.08.2012, 14:21
 
Ответить
СообщениеСоздаётся файл Книга.xlsx. Запрос на пароль не выдаётся. RAN постарался. smile
Вот код для xlsm: [vba]
Код
Private WithEvents App As Application

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
If ActiveWorkbook.Name Like "Книга*" Then
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Path & "\" & Split(ActiveWorkbook.Name, ".")(0) & ".xlsx", FileFormat:=51
ActiveWorkbook.Close False
Application.DisplayAlerts = True
End If
End Sub

Private Sub Workbook_Open()
Set App = Application
End Sub
[/vba]

Автор - Pulse
Дата добавления - 09.08.2012 в 14:20
RAN Дата: Четверг, 09.08.2012, 14:33 | Сообщение № 35
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Мне было интересно, на какой козе объехать auto_open.
А вот если код из auto_open продублировать в Workbook_Open, будет сложнее, поскольку срабатывает сначала Workbook_Open, затем App_Workbook_Open, а затем auto_open. cool


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеМне было интересно, на какой козе объехать auto_open.
А вот если код из auto_open продублировать в Workbook_Open, будет сложнее, поскольку срабатывает сначала Workbook_Open, затем App_Workbook_Open, а затем auto_open. cool

Автор - RAN
Дата добавления - 09.08.2012 в 14:33
Hugo Дата: Четверг, 09.08.2012, 14:51 | Сообщение № 36
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Да, можно и туда поставить вызов аутоопена, а в нём проверять, не отработалось ли уже (или не будет 2 раза срабатывать?)
Но вообще конечно это всё баловство, "чисто ради науки" smile
И кстати, ещё не известно, как это всё отработает на 2003 без конвертера smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеДа, можно и туда поставить вызов аутоопена, а в нём проверять, не отработалось ли уже (или не будет 2 раза срабатывать?)
Но вообще конечно это всё баловство, "чисто ради науки" smile
И кстати, ещё не известно, как это всё отработает на 2003 без конвертера smile

Автор - Hugo
Дата добавления - 09.08.2012 в 14:51
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!