Как защитить книгу excel макросом

Правильная защита макросом

В большинстве случаев защита макросом, которую я встречаю во множестве проектов, выглядит следующим образом:

Worksheets("Лист1").Unprotect Password:="123"
'тут макрос делает действия
Worksheets("Лист1").Protect Password:="123"

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

Есть гораздо более легкий и красивый способ решить задачу.

Нажмите Alt+F11, чтобы попасть в редактор Visual Basic. Затем найдите в левом верхнем углу в окне Project Explorer (если его не видно, то нажмите Ctrl+R) модуль ЭтаКнига (ThisWorkbook) и откройте двойным щелчком:

smart_protection1.gif

Скопируйте туда этот код:

Private Sub Workbook_Open()
    'включаем защиту первого листа для пользователя, но не макроса
    Worksheets("Лист1").Protect Password:="123", UserInterfaceOnly:=True
    
    'второй лист защищаем аналогично, но с возможностью пользоваться группировкой
    Worksheets("Лист2").EnableOutlining = True
    Worksheets("Лист2").Protect Password:="555", UserInterfaceOnly:=True
End Sub

Эта процедура будет автоматически запускаться при открытии файла и ставить защиту на заданные листы книги. Причем параметр UserInterfaceOnly, который мы дополнительно ввели, указывает Excel, что защита не должна распространяться на действия выполняемые макросом, а только на операции пользователя. Для второго листа все еще веселее — строка с параметром EnableOutlining разрешает пользоваться группировкой (символы плюс-минус для сворачивания-разворачивания строк и столбцов) на защищенном листе.

Всего три строчки кода, зато как удобно!

Ссылки по теме

  • Что такое макросы и куда копировать их код
  • Как поставить защиту листа, книги или всего файла

Skip to content

Как защитить все листы в файле

На чтение 2 мин. Просмотров 2.8k.

Что делает макрос: Вы можете защитить все листы в файле
перед тем, как распространить свои книги.
Вместо того чтобы защищать каждый лист вручную, вы можете использовать этот макрос.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как работает этот код
  4. Как использовать

Как макрос работает

В этом макросе вы выбираете листы и просто применяете защиту с помощью пароля.
Пароль аргумент определяет пароль, необходимый для снятия защиты. Аргумент Пароль не является обязательным. Если его вообще опустить, лист по-прежнему будет защищен; вам просто не нужно будет вводить пароль для снятия его защиты. Кроме того, следует помнить, что пароли Excel чувствительны к регистру.

Код макроса

Sub ZaschititVseListi()
 'Шаг 1: Объявляем переменные
 Dim ws As Worksheet
 'Шаг : Запускаем цикл через все рабочие листы
 For Each ws In ActiveWorkbook.Worksheets
 'Шаг 3: Ставим защиту и переходим к следующему листу
 ws.Protect Password:="КРАСНЫЙ"
 Next ws
 End Sub

Как работает этот код

  1. Шаг 1 объявляет объект под названием WS. Он создает контейнер памяти для каждого рабочего листа.
  2. Шаг 2 начинает процесс в Excel — проходит через все рабочие листы.
  3. На шаге 3, макрос применяет защиту с данным паролем, а затем возвращается обратно, чтобы получить рабочий лист.

Как использовать

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши personal.xlb в окне Project.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.

It is a best practice,  to protect the Macro (VBA Code) from other users to edit or view. In this article, we explain to create a simple macro and protect the same “VBA Project” using a password in Excel from other users.

Implementation:

Follow the below steps to protect your excel macro with a password:

Step 1: Open an excel file, to create a simple “hello world” macro.

Step 2: Press Alt + F11 – to open Visual Basic Editor.

Step 3: Click Insert >> Module, which will add a new module as in Img1.

Img 1

Step 4: Type the below code in “code window”.

Sub firstMacro()
MsgBox "Hello World"
End Sub

Step 5: Right-click “VBAProject (Book1)” and then click “VBAProject Properties”.

Step 6: GoTo Protection Tab >> Check “Lock project for viewing” and type your password in both Password and Confirm password input text boxes. Press “OK” 

Step 7: Save your Excel workbook as Excel Macro-Enabled Workbook (*.xlsm) and close

Step 8: Now reopen your excel file.  Press Alt+F8 – to open the Macro dialog box. Select the macro “firstMacro” and click “RUN”.

Step 9: Our macro will pop up below the message box. Close or press OK to hide the message box

Step 10: Press Alt + F11 – to open Visual Basic Editor. Now user cannot see any information in the VBA. 

Step 11: Double click “VBAProject (vbaProtect.xlsm)”, It will ask the user to enter a password.

Step 12: Type your password and press “OK”.  Now user can see all the excel objects and Macro.

At this point we have successfully created a macro in VBA and protected it with a password.

269 / 14 / 0

Регистрация: 26.02.2014

Сообщений: 142

1

Защита книги и макрос

18.03.2014, 13:33. Показов 19337. Ответов 10


Студворк — интернет-сервис помощи студентам

Добрый день уважаемые форумчане. У меня довольно интересный для меня вопрос, если допустим поставить на книгу пароль на открытие стандартным способом через «Сервис» и т.д., можно ли при включении книги с включенными макросами, что бы он снимался каким-то образом? Смысл в том, чтобы при включенных макросах программа запускалась без требования пароля, а если макросы выключить, то книгу без пароля уже открыть нельзя будет. Как ставить защиту листов и структуры книги понятно, а вот как с общей книги…



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

18.03.2014, 13:33

Ответы с готовыми решениями:

Защита книги
доброго времени суток. Вопрос. Запаролил книгу, но узнал что открыть ее не представляет никакой…

Защита книги и кода excel
Вот новый вопросик:
задача защитить код и доступ к записям листов методом макросов. Вот как я это…

Защита книги от переноса на другой ПК
У меня проблема, как защитить книгу от незаконного переноса на другой пк?
Если кто знает помогите….

Защита книги excel 2007
Хочу чтоб Если книгу excel 2007 c названием BOOK1 перепишут в другой компьютер, там его не могли…

10

12 / 12 / 4

Регистрация: 16.03.2012

Сообщений: 252

24.03.2014, 10:07

2

Нужно в автоопен поставить:
ActiveWorkbook.Unprotect Password:=»ПАРОЛЬ»
Это снятие автоматом пароля.

Таже нужно ставить пароль автоматом перед закрытием. Для нужно в саб Sub Workbook_BeforeClose вставить:
ActiveWorkbook.Protect Password:=»ПАРОЛЬ», structure:=True, Windows:=True



0



40 / 40 / 9

Регистрация: 19.03.2014

Сообщений: 215

24.03.2014, 12:03

3

Скорее всего нельзя.
Включение макросов это настройка самого Экзеля, поэтому лучше формой.



0



12 / 12 / 4

Регистрация: 16.03.2012

Сообщений: 252

24.03.2014, 15:02

4

Stormy day,
имею ввиду, что при закрытии книги автоматически пишется пароль. При открытии же загружается макрос, который его снимает. Т.е. создается ситуация, что без включенных макросов книга закрыта для редактирования: не может смотреть др. листы, не можете редактировать 1й лист и т.д. и т.п.
Если макросы отключены, нужно знать пароль для снятия защиты книги от редактирования. В противоположном случае, вы его не снимите, книга откроется, но тоьлко титульный лист.
Вобщем, это гарантирует, что пользователь не сможет отключить макросы, веренее это не ничего не даст: книга закрыта для редактирования.



0



269 / 14 / 0

Регистрация: 26.02.2014

Сообщений: 142

24.03.2014, 15:10

 [ТС]

5

Может глупый вопрос, а что есть Auto Open и где задавать ему макрос?



0



12 / 12 / 4

Регистрация: 16.03.2012

Сообщений: 252

24.03.2014, 15:16

6

авто опен — это обычный макрос в каталоге макросов. Делает «создать макрос» …и т.д. Просто первая строчка в макросе «Private Sub auto_open()». Вобщем, если макрос так называется — он запусется при открытии книги.



0



40 / 40 / 9

Регистрация: 19.03.2014

Сообщений: 215

24.03.2014, 15:18

7



0



Derjzemit

269 / 14 / 0

Регистрация: 26.02.2014

Сообщений: 142

24.03.2014, 15:30

 [ТС]

8

Visual Basic
1
2
3
Private Sub Auto_Open()
ActiveWorkbook.Unprotect Password:="1234"
End Sub

Имеется в виду такой вариант? Если да, то я задаю в лист «Эта книга» его и все равно книга с нуля запускается под паролем.

Добавлено через 10 минут
Возможно я конечно не так выразился изначально, еще раз по сути, меня не интересует защита отдельных листов и структуры от редактирования и изменения (все что связано со вкладкой Рецензирование) — с этим я разобрался, меня интересует шифровании книги стандартными методами (через Сервис при сохранении), вернее снятие пароля оттуда макросом. Насколько я понимаю, книгу надо сначала расшифровать паролем, а потом все макросы и будут запускаться (в моем понимании работы экселя), по-этому и спрашиваю, можно ли как-то это обойти. Была конечно идея запускать одну книгу, которая копировала в буфер обмена пароль, открывала нужную книгу и вставляла грубо, но это некрасиво и плоско, по-этому и интересно можно ли.



0



mrf

12 / 12 / 4

Регистрация: 16.03.2012

Сообщений: 252

24.03.2014, 15:32

9

книга не запускается под поролем если он не установлен.
1. Сохраняете книгу(и все сделанные изменения) с автоматической установкой пароля (макрос вписывается в «эта книга»):

Visual Basic
1
2
Sub Workbook_BeforeClose
ActiveWorkbook.Protect Password:="1234", structure:=True, Windows:=True

2. Также у вас прописан макрос на автоматической выполнение при открытии (обычный макрось в «mudules»:

Visual Basic
1
2
3
Private Sub Auto_Open()
ActiveWorkbook.Unprotect Password:="1234"
End Sub

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



0



269 / 14 / 0

Регистрация: 26.02.2014

Сообщений: 142

24.03.2014, 15:40

 [ТС]

10

Да это все и так понятно) я говорю про тот пароль, который устанавливается в сохранении-сервис и пока его не введешь, структуру в принципе увидеть нельзя, не то что бы изменить.



0



mrf

12 / 12 / 4

Регистрация: 16.03.2012

Сообщений: 252

24.03.2014, 15:44

11

наверное, это я не правильно понял
Тогда только макрос на форму через автоопен

Добавлено через 1 минуту

Visual Basic
1
2
3
4
5
6
Sheets("1").Select
    With UserForm1
    
         .Show
         
         If .txtPwd.Text <> "1234" Then Exit Sub



0



Время на прочтение
5 мин

Количество просмотров 25K

Всем привет! Я обычный пользователь MS Excel. Не являющийся профессиональным программистом, но накопивший достаточно опыта, для установки и обхода защиты проектов VBA.

Дисклеймер:

В данной статье рассмотрены виды защиты проектов VBA, от несанкционированного доступа. Их сильные и слабые стороны – ранжирование.

Цель статьи показать слабые и сильные стороны каждого вида защиты проекта VBA в MS Office.

Демонстрация разработанных инструментов, в надстройке Macro Tools VBA, для снятия и установки той или иной защиты. 

Все инструменты реализованы стандартными средствами VBA, без использования дополнительных библиотек. 

Главная панель Надстройки Macro Tools VBA

Первый вид защиты — Обычный пароль

Время на снятие: мгновенно

Недостаток: быстрый доступ к запароленному модулю VBA

Стандартный инструмент (В среде VBE: панель Tools -> VBAProject Properties -> Protection). 

Самая легко снимающаяся защита. В интернете легко находится код, для снятия данной защиты. 

Данную защиту можно снять следующим инструментом:

Второй вид защиты — Project is Unviewable

Время на снятие:  от 10 до 15 мин (в ручную)

Недостаток: доступ к исходному коду модуля VBA

Один из самых распространённых видов защит.  Встречается в 95% файлах с защитой модуля VBA. При попытке открыть проект, открывается диалоговое окно, с  сообщением:  Project is Unviewable.


Большинство пользователей Excel, не могут снять данную защиту, так как она имеет множество вариации и нюансов, для ее снятие нужно иметь представление о внутренней структуре файла Excel.

Основан, данный вид защиты, на изменение ключей:

CMG=«4A488FCC54D054D054D054D0»

DPB=«0B09CE0F8E108E108E»

GC=«CCCE09520B120C120CED»

в файле vbaProject.bin

Кратко, как создается данная защита

Для создания данной защиты нужно, разархивировать файл Excel. Перейти в архиве в папку xl, открыть файл vbaProject.bin,  в конце файла находятся наши ключи, редактируем значения ключей на пусто, сохраняем файл. Переводим наш архив, обратно в файл Excel. Готово! 

Это самый простой вариант данной защиты, но существует множество модификаций.

Алгоритм снятия защиты Project is Unviewable.

1)  Разархивируем подопытный файл, переходим в файл  …xl_relsworkbook.xml.rels

2)      В файле workbook.xml.rels  ищем строку, содержащую слово  vbaProject, обычно имеет следующий вид:  />. В этой строке нас интересует ключ Target,иего значение. Значение является название файла, в котором находится проект VBA. Иногда, защищающий меняет значения ключа на printerSettings.bin.Получается маскировка файла с проектом VBA  под другой файл.

3)      Открываем на редактирование файл, указанный в  ключе Target, ищем в файле ключи  CMG, DPB, GC. И меняем в их названиях любую букву на любую другую, например: CMC, DPC, CC. При поиске нужно быть аккуратным, так как защищающий может поместить  в проект форму,  подписью повторяющую один из ключей, например такую: DPB=«0B09CE0F8E108E108E». При ее изменении проект VBA, будет удален из книги Excel.  Сохраняем и закрываем файл.

4)      Переводим архив обратно в файл Excel.

5)      Запускаем приложение Excel, выполняем следующее: в Центре управления безопасностью -> Параметры макросов  -> Отключить все макросы без уведомления. Перезапускаем Excel. Данная операция нужна, для блокировки защиты, которую иногда ставят авторы макросов. Данная защита реализована следующим образом. В модуле VBA «ЭтаКнига», создается процедуры, реагирующие на события открытия книги или закрытия книги. Эти события обычно проверяют, наличие пароля на проект VBA, запрет сохранения и прочее.

6)      Открываем файл. Если все правильно сделано то, Excel, будет ругаться на не правильные ключи, которые мы отредактировали, в пункте 3. Жмем, да, пока данные сообщения не закончатся и диалоговое окно закроется. 

      Если данное сообщение не появляется то, вы отредактировали не файл который содержит проект VBA.

7)      Открываем проект VBA. После всего, проект VBA должен быть доступен.

8)       Но иногда защита не снимается, тогда нужно сохранить файл, проверить, что он действительно сохранился! И проделать повторно операции с 1 по 7. Обычно так происходит когда в файле workbook.xml.rels в ключе Target  установлено printerSettings.bin.При сохранение,  Excel  исправляет это на значение на vbaProject.bin

Данную защиту можно установить и снять следующим инструментом:

Третий вид защиты — Hidden  Module, скрытые модули VBA

Время на снятие:  от 15 до 20 мин (нужен редактор OLE — объектов, Structured Storage Viewer, например.

Недостаток: доступ к коду модуля VBA

Менее распространенный вид  защиты обычно встречается в комбинации с защитой Project is Unviewable. При установке данной защиты модуль VBA не отображается в проекте книги Excel. О его существовании можно узнать, проанализировав код VBA (что требует время!) или открыть файл Excel в программе  OpenOffice  или  LibreOffice (так же можно смотреть код при защите Project is Unviewable, но данный способ не дает возможность получить рабочий файл, без пароля). 

Просмотр кода VBA в  LibreOffice

Кратко, как создается данная защита

Для создания данной защиты нужно отредактировать файл  с проектом VBA — vbaProject.bin  или printerSettings.bin,в зависимости от настроек в файле …xl_relsworkbook.xml.rels. В конце файла удаляются строки вида: Module1=32, 32, 635, 330, Z.  С нужными названиями модулей.

Для снятия данной защиты нужно в файле vbaProject.bin — восстановить удаленные записи модулей.

Данную защиту можно установить следующим инструментом.

Четвертый вид защиты — Обфускация кода

Время на снятие:  неизвестно, зависит от объема кода и пере использования частей кода

Обфусцированный код VBA

Недостаток:  необходимость тестирование файла после обфускации, на работоспособность

Крайне редкий вид защиты, основанный на изменении исходного кода VBA, в не удобочитаемый вид для человека. Удаляются все комментарии, форматирование кода, переименовываются названия всех переменных,  процедур, функций, модулей и прочего. Злоумышленнику никогда не удастся восстановить первоначальный вид кода, и потребует достаточно много времени для, его восстановления в удобно читаемый вид для человека.  

Для де-обфускации кода нужно иметь  время, специализированное ПО.

Данную защиту можно установить следующим инструментом.

Пятый вид защиты — Перенос кода в dll

Время на снятие:  неизвестно, зависит от языка программирования и квалификации

Недостаток:  необходимости в дополнительном  файле dll

Один из самых редких видов защиты. Основная идея перенос основного кода в отдельную библиотеку dll, написанную на любом другом языке программирования. Не распространённость данный вид защиты получил по следующей причине,  необходимости за файлом Excel, «таскать» дополнительный файл, dll.

Для получения доступа к коду dll, нужно обладать специальными знаниями.

Заключение

В заключении хочу выделить бесполезность защит:  Project is Unviewable и Hidden  Module которые, по существу ни отчего не защищают. Позволяют просматривать код VBA, без изменения исходного  файла, в таких программах как OpenOffice  или  LibreOffice. Так и снимаются без особых проблем.

  1. Что делает макрос
  2. Код макроса
  3. Как работает макрос
  4. Как использовать
  5. Скачать файл

Ссылка на это место страницы:
#zadacha

Если Вам постоянно приходится думать о защите листов, прежде чем отправить свои файлы, этот макрос может помочь вам защитить рабочие листы перед закрытием 

Этот код запускается событием рабочей книги (BeforeClose— перед закрытием). При нажатии на кнопку закрыть срабатывает событие и запускается макрос. Макрос автоматически защищает рабочий лист, а затем сохраняет книгу 

Ссылка на это место страницы:
#formula

  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2. Sheets("Отчет1").Protect Password:="Akademia_Excel"
  3. ActiveWorkbook.Save
  4. End Sub

Ссылка на это место страницы:
#kak

1. На шаге 1 мы явно указываем, какой лист мы хотим защитить — Отчёт, в данном случае. Мы также прописываем аргумент Password (пароль): = «Akademia_Excel». Это строка установит пароль для снятия защиты. Password (пароль) — аргумент не является обязательным. Если его не указывать, то лист будет по-прежнему защищен, но снять защиту сможет любой желающий. Кроме того, следует помнить, что пароли Excel чувствительны к регистру, так что обратите внимание на заглавные и строчные буквы в пароле. 

2. Шагом 2 мы говорим Excel сохранить книгу. Если мы не сохраним, то защита не будет действовать при следующем открытии книги. 

Ссылка на это место страницы:
#touse

Для реализации этого макроса, Вам нужно скопировать и вставить его в код события Workbook_BeforeClose

Размещение макроса здесь позволяет запускать макрос непосредственно перед закрытием Excel файла. 

1. Активируйте редактор Visual Basic, нажав ALT + F11
2. В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы и модуль ЭтаКнига. 
3. Правой кнопкой мыши нажмите на модуле ЭтаКнига и выберите View Code
4. В левой верхней части окна выберите объект WorkBook (Excel автоматом предложит написать макрос для события Workbook_Open (можете позже удалить его за ненадобностью).
5. В правом верхнем выпадающем списке выберите свойство BeforeClose

Ссылка на это место страницы:
#file

Файлы статей доступны только зарегистрированным пользователям.

1. Введите свою почту

2. Нажмите Зарегистрироваться

3. Обновите страницу
Вместо этого блока появится ссылка для скачивания материалов.

Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель — помочь вам эффективнее работать в Excel. 

Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.

Подписывайтесь на нас в соц.сетях:

Электронную таблицу можно защитить, чтобы ее нельзя было редактировать паролем. В сегодняшнем уроке мы рассмотрим вас объясните, как защитить и снять защиту листов в книге Excel с помощью макроса.

Прежде чем мы объясним, как защитить или снять защиту книги Excel с помощью макросов, вы должны знать, как создавать макросы. Процедура очень проста, и мы объясним ее шаг за шагом, чтобы вы могли сделать это без каких-либо неудобств и чтобы вы могли установить файл Excel только для чтения .

Для начала вы должны открыть программу Excel и позиционировать себя на Редактор Visual Basic. Вы можете увидеть его в верхней части экрана слева от вас. Его обычно представляет VS.

Вот важное уточнение. Это зависит от того, какая у вас версия Excel, путь будет отличаться. Если у вас нет кнопки VB на панели инструментов в верхней части экрана, сделайте следующее: «Файл> Параметры> Разработчик / Программист> Virtual Basic»

Редактор откроется автоматически, и вы сможете использовать меню и инструменты в окне. Вам нужно поместить следующую команду в новый модуль: ActiveSheet и в скобках пароль, с помощью которого мы хотим установить защиту, вы также можете добавить имя или номер листа, если хотите его указать, или вы даже можете защитить ячейки в Excel так что они не изменяются.

Как это работает и что такое макросы в Excel

Макрос автоматизирует функции, которые мы часто выполняем, чтобы оптимизировать время редактирования книги в Excel. Они созданы с Microsoft виртуальный базовый и разработаны разработчиками программного обеспечения.

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

Первое, что нужно сделать, это авторизовать доступ к объектной модели проекта VBA с помощью пароля. Для этого вы выполните следующую последовательность «Файл> Параметры> Центр управления безопасностью> Настройки центра управления безопасностью> Настройки макроса. Там нужно поставить галочку «Доверять доступу к объектной модели проектов VBA».

Чтобы защитить книгу, вы также должны проверить дома » Активировать все макросы » . Если вы хотите снять с них защиту, вместо этого установите флажок «Отключить все макросы с уведомлением или без него».

Как защитить книгу Excel с помощью макросов за несколько шагов

Чтобы защитить структуру книги, чтобы никто не мог создавать или удалять листы, если они не знают пароль, вам необходимо написать следующую команду в VBA:

[codeyntax lang = «vb» lines = «no» container = «pre» blockstate = «extended» doclinks = «0 ″] 

И тогда это будет записано так:

Защищать под ()

В случае ошибки GoTo end

        ActiveWorkbook.Protect («Пароль для защиты»)

финиш:

End Sub

Если вместо этого вы хотите защитить всю книгу, вы должны написать следующую команду

[codeyntax lang = «vb» lines = «no» container = «pre»]

И тогда это должно быть нарисовано следующим образом

Sub Protect (название книги или страницы)

    В случае ошибки GoTo end

    Dim sht как рабочий лист

    Application.ScreenUpdating = False

        ActiveWorkbook.Protect («пароль для защиты книги»)

        За каждый шт в ActiveWorkbook.

            Если sht.Visible = True То

                sht.Protect («пароль для защиты книги»)

            Конец да

        следующая

финиш:

End Sub

Как видите, мы добавили несколько строк, в которых мы различаем листы, которые мы хотим защитить, с помощью команды «Защитить» и имени или номера листа.

Как извлечь книгу Excel за несколько шагов

Вы можете снять защиту с книги или листа Excel так же, как вы это делали, но мы собираемся изменить некоторые детали заказа.

Чтобы снять защиту с листа, мы вставим следующий код:

ActiveSheet.Unprotect «Пароль, который вы использовали для защиты»

Если вместо этого мы хотим снять защиту с книги Excel, нам нужно вставить следующий код:

ThisWorkbook.Unprotect «Пароль, который вы использовали для защиты»

Мы надеемся, что этот урок на защита и безопасность в Excel вы будет полезно. Если у вас есть вопросы, оставьте их в комментариях, и мы поможем вам их решить.

Содержание

  1. Метод Workbook.Protect (Excel)
  2. Синтаксис
  3. Параметры
  4. Поддержка и обратная связь
  5. Worksheet.Protect method (Excel)
  6. Syntax
  7. Parameters
  8. Remarks
  9. Support and feedback
  10. VBA Protect Sheet — Как защитить лист в Excel, используя код VBA?
  11. Excel VBA Protect Sheet
  12. Синтаксис VBA Protect Sheet
  13. Как защитить лист в Excel VBA?
  14. VBA Protect Sheet — Пример № 1
  15. VBA Protect Sheet — Пример № 2
  16. То, что нужно запомнить
  17. Рекомендуемые статьи

Метод Workbook.Protect (Excel)

Защищает книгу, чтобы ее нельзя было изменить.

Синтаксис

expression. Защита (пароль, структура, Windows)

Выражение Переменная, представляющая объект Workbook .

Параметры

Имя Обязательный или необязательный Тип данных Описание
Password Необязательный Variant Строка, указывающая пароль для листа или книги с учетом регистра. Если этот аргумент опущен, можно снять защиту листа или книги, не используя пароль. В противном случае необходимо указать пароль для отмены защиты листа или книги. Если вы забыли пароль, вы не сможете снять защиту листа или книги.

Используйте надежные пароли, содержащие строчные и прописные буквы, цифры и знаки. В слабых паролях эти элементы не комбинируются. Надежный пароль: Y6dh!et5. Слабый пароль: House27.

Длина паролей должна быть не меньше 8 символов. В парольной фразе лучше использовать 14 или более символов.

Очень важно запомнить пароль. Если вы его забудете, корпорация Майкрософт не сможет его восстановить. Храните пароли, записанные на бумаге, в безопасном месте вдали от информации, которую они защищают. Структура Необязательный Variant Значение true для защиты структуры книги (относительное положение листов). Значение по умолчанию — False. Windows Необязательный Variant Значение true для защиты окон книги. Если этот аргумент опущен, окна не будут защищены.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Worksheet.Protect method (Excel)

Protects a worksheet so that it cannot be modified.

Syntax

expression.Protect (Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)

expression A variable that represents a Worksheet object.

Parameters

Name Required/Optional Data type Description
Password Optional Variant A string that specifies a case-sensitive password for the worksheet or workbook. If this argument is omitted, you can unprotect the worksheet or workbook without using a password. Otherwise, you must specify the password to unprotect the worksheet or workbook. If you forget the password, you cannot unprotect the worksheet or workbook.

Use strong passwords that combine uppercase and lowercase letters, numbers, and symbols. Weak passwords don’t mix these elements. Strong password: Y6dh!et5. Weak password: House27. Passwords should be 8 or more characters in length. A pass phrase that uses 14 or more characters is better.

It’s critical that you remember your password. If you forget your password, Microsoft cannot retrieve it. Store the passwords that you write down in a secure place away from the information that they help protect. DrawingObjects Optional Variant True to protect shapes. The default value is True. Contents Optional Variant True to protect contents. For a chart, this protects the entire chart. For a worksheet, this protects the locked cells. The default value is True. Scenarios Optional Variant True to protect scenarios. This argument is valid only for worksheets. The default value is True. UserInterfaceOnly Optional Variant True to protect the user interface, but not macros. If this argument is omitted, protection applies both to macros and to the user interface. AllowFormattingCells Optional Variant True allows the user to format any cell on a protected worksheet. The default value is False. AllowFormattingColumns Optional Variant True allows the user to format any column on a protected worksheet. The default value is False. AllowFormattingRows Optional Variant True allows the user to format any row on a protected worksheet. The default value is False. AllowInsertingColumns Optional Variant True allows the user to insert columns on the protected worksheet. The default value is False. AllowInsertingRows Optional Variant True allows the user to insert rows on the protected worksheet. The default value is False. AllowInsertingHyperlinks Optional Variant True allows the user to insert hyperlinks on the protected worksheet. The default value is False. AllowDeletingColumns Optional Variant True allows the user to delete columns on the protected worksheet, where every cell in the column to be deleted is unlocked. The default value is False. AllowDeletingRows Optional Variant True allows the user to delete rows on the protected worksheet, where every cell in the row to be deleted is unlocked. The default value is False. AllowSorting Optional Variant True allows the user to sort on the protected worksheet. Every cell in the sort range must be unlocked or unprotected. The default value is False. AllowFiltering Optional Variant True allows the user to set filters on the protected worksheet. Users can change filter criteria but can not enable or disable an auto filter. Users can set filters on an existing auto filter. The default value is False. AllowUsingPivotTables Optional Variant True allows the user to use PivotTable reports on the protected worksheet. The default value is False.

In previous versions, if you apply this method with the UserInterfaceOnly argument set to True and then save the workbook, the entire worksheet (not just the interface) will be fully protected when you reopen the workbook. To re-enable the user interface protection after the workbook is opened, you must again apply this method with UserInterfaceOnly set to True.

If you want to make changes to a protected worksheet, it is possible to use the Protect method on a protected worksheet if the password is supplied. Also, another method would be to unprotect the worksheet, make the necessary changes, and then protect the worksheet again.

Unprotected means that the cell may be locked (Format Cells dialog box) but is included in a range defined in the Allow Users to Edit Ranges dialog box, and the user has unprotected the range with a password or has been validated via NT permissions.

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

VBA Protect Sheet — Как защитить лист в Excel, используя код VBA?

Excel VBA Protect Sheet

Защита рабочего листа — важная задача для тех, кто очень часто работает в Microsoft Excel. Это задача, которая вам нужна для защиты вашего листа от редактирования другим пользователем. Предположим, вы отправляете отчет руководству, а затем руководство сознательно или по ошибке меняет параметры или значения в отчете. Становится беспокойным, чтобы идентифицировать ошибку, и в то же время переделка — это то, что отнимает у вас время. Чтобы преодолеть эту проблему, всегда рекомендуется защитить лист (ы) для редактирования с помощью пароля. Эта опция помогает вам, не позволяя пользователю вносить какие-либо изменения на листе (ах). Вы также можете поделиться паролем с человеком, который предназначен, а также уполномочен вносить изменения. Несмотря на то, что в приложении Excel имеется опция «Защитить рабочий лист» на вкладке «Просмотр», расположенная на ленте Excel, она становится беспокойной, когда вам нужно защитить более одного листа. Это потратит достаточно времени на защиту каждого листа по одному. Вместо этого рекомендуется писать код VBA, который может защитить один или несколько листов из вашей книги для редактирования.

Синтаксис VBA Protect Sheet

Эта встроенная функция VBA, связанная с Worksheet, позволяет защитить лист с помощью пароля. Синтаксис для функции защиты листа VBA следующий:

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

  • Пароль: указывает пароль для листа. Если не указано иное, лист будет защищен без пароля, и пользователь сможет редактировать его без запроса пароля.
  • DrawingObjects: необязательные аргументы, которые позволяют вам защитить различные формы листа. Принимает логические значения. По умолчанию установлено значение ЛОЖЬ.
  • Содержание: Необязательный аргумент. Защищает все объекты. По умолчанию значения установлены в TRUE.
  • Сценарии: защищает все различные сценарии. По умолчанию установлено значение TRUE.
  • UserInterfaceOnly: защищает пользовательский интерфейс, но не макросы. Значение по умолчанию TRUE, если макрос игнорируется, так как пользовательский интерфейс будет защищен.
  • AllowFormattingCells: значение по умолчанию установлено в FALSE, из-за чего пользователь не может отформатировать ячейки листа. Если установлено значение TRUE, пользователь может форматировать ячейки на листе.
  • AllowInsertingColumns: значение по умолчанию установлено в FALSE. Если установлено значение ИСТИНА, пользователь может вставить столбец в лист.
  • AllowInsertingRows: значением по умолчанию является ЛОЖЬ. Если установлено значение TRUE, пользователь может вставлять строки в лист.
  • AllowInsertingHyperlinks: значение по умолчанию установлено в FALSE. Если установлено значение ИСТИНА, пользователь может вставлять гиперссылки на лист.
  • AllowDeletingColumns: значение по умолчанию установлено в FALSE. Если установлено значение ИСТИНА, пользователь может удалить любой столбец с листа.
  • AllowDeletingRows: значением по умолчанию является ЛОЖЬ. Если установлено значение ИСТИНА, пользователь может удалить любое количество строк с листа.
  • AllowSorting: Значением по умолчанию является ЛОЖЬ. Если установлено значение ИСТИНА, пользователь может сортировать данные, представленные на листе.
  • AllowFiltering: значением по умолчанию является ЛОЖЬ. Если установлено значение ИСТИНА, пользователь может фильтровать данные, представленные на листе.
  • AllowUsingPivotTables: Значением по умолчанию является ЛОЖЬ. Если установлено значение TRUE, пользователь может использовать и изменять сводные таблицы.

Как защитить лист в Excel VBA?

Ниже приведены различные примеры защиты листа в Excel с использованием VBA Protect.

Вы можете скачать этот шаблон Excel для защиты листа VBA здесь — Шаблон Excel для защиты листа VBA

VBA Protect Sheet — Пример № 1

Предположим, у нас есть лист с именем «Пример 1» в книге под названием «VBA Protect Sheet». Мы хотим, чтобы этот лист был защищен паролем. Для этого выполните следующие шаги:

Шаг 1. Вставьте новый модуль в редактор Visual Basic (VBE). Нажмите на Вставить > выбрать модуль .

Шаг 2: Определите новую подпроцедуру в модуле.

Код:

Шаг 3: Теперь мы должны использовать функцию Protect, которую можно применить к объекту с именем Worksheet. Запустите код с объектом Worksheets и введите имя листа в скобках, которое вы хотите защитить.

Код:

Шаг 4: Теперь поставьте точку после закрывающих скобок и используйте ключевое слово Protect, которое инициирует процесс защиты листа с именем « Пример 1 ».

Код:

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

Шаг 5: Введите ключевое слово Password и используйте надежный пароль для защиты этого листа.

Код:

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

Шаг 6: Вот и все, вы можете запустить этот код, нажав F5 или кнопку Run, и увидите, что файл теперь защищен и попросит пользователя ввести пароль, как только он попытается отредактировать любую из ячеек.

Вот как мы защищаем лист, используя функцию защиты VBA.

VBA Protect Sheet — Пример № 2

Теперь мы хотим защитить все листы, присутствующие в рабочей книге. Для этого выполните следующие шаги:

Шаг 1: Определите подпроцедуру в модуле.

Код:

Шаг 2: Определите новую переменную как рабочий лист, используя Dim.

Код:

Шаг 3: Запустите цикл For. Этот цикл должен выполняться до последнего рабочего листа активной рабочей книги.

Код:

Эта строка кода выбирает каждую рабочую таблицу активной рабочей книги и сохраняет ее под переменной wrk_sht для каждой итерации цикла. Цикл заканчивается, как только последний лист рабочей книги выбран и сохранен в переменной wrk_sht. Нам нужно определить операцию для этого цикла. Это, безусловно, будет защищать лист с помощью пароля.

Шаг 4: Теперь используйте функцию Protect для защиты листов, хранящихся в переменной wrk_sht для каждой итерации цикла For.

Код:

Шаг 5: Используйте оператор Next, он позволяет циклу работать, пока каждый лист не будет защищен.

Код:

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

То, что нужно запомнить

  • Рекомендуется использовать пароль при защите листа. В противном случае пользователю не будет предложено ввести пароль, и он сможет напрямую редактировать файл, хотя вы его защитили.
  • Рекомендуется запомнить пароль. В противном случае, забыв о том же самом, вы никогда не сможете редактировать файл. Возможно, вам придется пройти через различные методы, если вы потеряете пароль, и эти методы выходят за рамки этой статьи.

Рекомендуемые статьи

Это руководство по VBA Protect Sheet. Здесь мы обсудим, как защитить или заблокировать листы с помощью функции VBA Protect в Excel, а также на практических примерах и загружаемом шаблоне Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. Как переименовать лист в Excel VBA?
  2. Шаги, чтобы снять защиту листа в Excel
  3. Лист активации VBA (Примеры с шаблоном Excel)
  4. Как скопировать лист Excel?

Источник

Понравилась статья? Поделить с друзьями:
  • Как защитить изображение от копирования в word
  • Как защитить доступ к файлу excel
  • Как защитить документ word от чтения
  • Как защитить документ word от редактирования паролем
  • Как защитить документ word от просмотра паролем