Защита листа Vba Excel

Обновлено: 20.11.2024

выражение. Защитить (Пароль, Объекты рисования, Содержимое, Сценарии, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows< /em>, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, < em>Разрешить использование сводных таблиц)

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

Параметры

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

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

Примечания

В предыдущих версиях, если применить этот метод с аргументом UserInterfaceOnly, установленным в значение True, а затем сохранить книгу, весь лист (а не только интерфейс) будет полностью защищен при повторном открытии книги. Чтобы повторно включить защиту пользовательского интерфейса после открытия книги, необходимо снова применить этот метод, установив для параметра UserInterfaceOnly значение True.

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

Незащищенный означает, что ячейка может быть заблокирована (диалоговое окно «Формат ячеек»), но включена в диапазон, определенный в диалоговом окне «Разрешить пользователям изменять диапазоны», и пользователь снял защиту с диапазона с помощью пароль или был проверен с помощью разрешений NT.

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

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

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

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

Напишите код VBA для защиты листа

Чтобы защитить лист, необходимо сначала указать лист, а затем использовать метод защиты. Вот шаги.

  1. Используйте объект листов, чтобы указать лист.
  2. Введите имя листа, который вы хотите защитить.
  3. Введите точку, чтобы получить список методов и свойств.
  4. Выберите метод защиты или введите его.

Напишите код VBA, чтобы снять защиту с листа

Чтобы защитить лист, необходимо сначала указать лист, а затем использовать метод снятия защиты. Вот шаги.

  1. Укажите лист с помощью объекта листа.
  2. Затем введите имя листа, который вы хотите защитить.
  3. Введите точку, чтобы получить список методов и свойств.
  4. Выберите метод «Снять защиту» или введите его.

Защитить лист паролем

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

Снять защиту листа паролем

Точно так же, если вы хотите снять защиту с листа, вам нужно указать пароль в аргументе пароля. Допустим, пароль, который вы использовали для защиты листа, — «ADSBP», поэтому код для снятия защиты будет таким, как показано ниже.

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

Что еще нужно знать

Как я уже сказал, мы используем метод «Защита» VBA, и у этого метода есть аргументы, отличные от «Пароля», которые вы можете использовать.

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

В этой теме:

Почему мы используем метод защиты рабочего листа с помощью VBA?

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

Метод VBA Protect Worksheet — Синтаксис

Вот синтаксис для защиты рабочего листа с помощью VBA.

Рабочие листы («Имя вашего рабочего листа»). Защитить(

[Пароль], [DrawingObjects], [Содержание], [Сценарии], [UserInterfaceOnly], [AllowFormattingCells], [AllowFormattingColumns], [AllowFormattingRows], [AllowInsertingColumns], [AllowInsertingRows], [AllowInsertingHyperlinks], [AllowDeletingColumns] , [AllowDeletingRows], [AllowSorting], [AllowFiltering], [AllowUsingPivotTables])

Где
Пароль: Необязательный параметр. Он указывает пароль с учетом регистра для рабочего листа. Если этот параметр не указан, рабочий лист будет заблокирован без пароля, и при снятии защиты у пользователя не будет запрашиваться пароль. Если вы хотите снять защиту с защищенного рабочего листа, вы должны указать свой пароль.
DrawingObjects: его необязательный параметр и ввод логического типа. Значение по умолчанию — ИСТИНА. Если значение равно True, оно позволяет защитить все фигуры на листе.
Содержимое: его необязательный параметр и ввод логического типа. Значение по умолчанию — ИСТИНА. Если значение TRUE, чтобы защитить содержимое рабочего листа, кроме тех ячеек или диапазона, которые установлены как «Разблокировано».
Сценарии: его необязательный параметр и ввод логического типа. Значение по умолчанию верно. Если значение равно True, это защищает сценарии.
UserInterfaceOnly : его необязательный параметр и ввод логического типа. Если значение равно True, чтобы защитить пользовательский интерфейс, но не макросы. Если этот параметр опущен, защита применяется как к макросам, так и к пользовательскому интерфейсу.
AllowFormattingCells: необязательный параметр и ввод логического типа. Значение по умолчанию — ЛОЖЬ. Если значение равно TRUE, пользователь может форматировать любую ячейку на защищенном листе.
AllowFormattingColumns: его необязательный параметр и ввод логического типа. Значение по умолчанию — ЛОЖЬ. Если значение равно TRUE, пользователь может форматировать любой столбец на защищенном листе.
AllowFormattingRows: необязательный параметр и ввод логического типа. Значение по умолчанию — ЛОЖЬ. Если значение равно TRUE, пользователь может форматировать любую строку защищенного рабочего листа.
AllowInsertingColumns: его необязательный параметр и ввод логического типа. Значение по умолчанию — ЛОЖЬ. Если значение равно TRUE, пользователь может вставить столбец в защищенный рабочий лист.
AllowInsertingRows: необязательный параметр и вход логического типа. Значение по умолчанию — ЛОЖЬ. Если значение равно TRUE, пользователь может вставлять строки в защищенный рабочий лист.
AllowInsertingHyperlinks: необязательный параметр и ввод логического типа. Значение по умолчанию — ЛОЖЬ. Если значение равно TRUE, пользователь может вставлять гиперссылки на защищенный рабочий лист.
AllowDeletingColumns: его необязательный параметр и ввод логического типа. Значение по умолчанию — ЛОЖЬ. Если значение равно TRUE, пользователь может удалить столбцы из защищенного листа.
AllowDeletingRows: необязательный параметр и вход логического типа. Значение по умолчанию — ЛОЖЬ. Если значение равно TRUE, пользователь может удалять строки из защищенного рабочего листа.
AllowSorting: его необязательный параметр и ввод логического типа. Значение по умолчанию — ЛОЖЬ. Если значение TRUE, это позволяет пользователю сортировать данные на защищенном листе.Примечание. Чтобы применить сортировку, каждая ячейка в диапазоне должна быть разблокирована.
AllowFiltering: необязательный параметр и вход логического типа. Значение по умолчанию — ЛОЖЬ. Это позволит пользователю изменять критерии фильтрации, но не может включать или отключать параметр АВТОФИЛЬТР на листе. Пользователям разрешено просто изменять различные фильтры на уже существующем автофильтре.
AllowUsingPivotTables: необязательный параметр и ввод логического типа. Значение по умолчанию — ЛОЖЬ. Если значение TRUE, это позволяет пользователю использовать отчеты сводной таблицы на защищенном рабочем листе.
В приведенном выше синтаксисе мы используем метод «Защитить» объекта «Рабочий лист» для защиты рабочего листа.

Метод VBA Protect Worksheet — без пароля

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

Объяснение. В приведенном выше примере мы защищаем рабочий лист без пароля, используя метод «Защитить» объекта «Рабочий лист» на рабочем листе с именем «Лист1». В приведенной выше процедуре мы не предоставляем никакого пароля, поэтому рабочий лист будет заблокирован для редактирования. При снятии защиты с того же рабочего листа не будет запрашиваться пароль для снятия защиты с рабочего листа.

Метод защиты рабочего листа VBA — с помощью пароля

Вот пример защиты рабочего листа паролем.

Объяснение. В приведенном выше примере мы защищаем рабочий лист паролем, используя метод «Защитить» объекта «Рабочий лист» на рабочем листе с именем «Лист1». Когда рабочий код рабочего листа защищен паролем, если вы хотите внести какие-либо изменения в код, сначала вам нужно снять защиту пароля в начале процедуры, а в конце процедуры вы должны снова защитить его. При снятии защиты с того же рабочего листа будет запрашиваться пароль для снятия защиты с рабочего листа.

Метод VBA Protect Worksheet: Инструкции

Пожалуйста, следуйте приведенным ниже пошаговым инструкциям, чтобы выполнить вышеупомянутые макросы или коды VBA:

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

Чтобы снять защиту, в зависимости от того, был ли предоставлен пароль во время защиты.

Если пароль не указан, вы можете снять защиту с листа или книги, не указывая пароль.

< /table>

Параметры защиты

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

Предоставьте своим макросам доступ к заблокированным ячейкам — параметр UserInterfaceOnly

Когда вы блокируете ячейки на листе, эта защита применяется как к операциям VBA, так и к действиям пользователя. Если ваш код VBA попытается изменить заблокированную ячейку, вы получите ошибку времени выполнения 1004. Один из способов обойти это — снять защиту с листа до запуска соответствующего VBA, а затем повторно защитить его после завершения VBA. Это какое-то мутное решение. Лучше всего использовать флаг UserInterfaceOnly, когда вы защищаете лист через VBA. Вы можете указать UserInterfaceOnly только в коде VBA. Для этой опции нет элемента пользовательского интерфейса (панели команд, меню и т. д.); вы должны использовать VBA. Когда вы защищаете лист с помощью UserInterfaceOnly, защита применяется к действиям пользователя (в основном, к операциям с клавиатурой и мышью), но VBA может свободно изменять лист, как если бы защиты не было. Параметр UserInterfaceOnly не сохраняется при закрытии книги, поэтому его необходимо установить при открытии книги. Лучше всего это сделать в процедуре события Workbook_Open в модуле ThisWorkbook.

Вам не нужно защищать лист паролем только для использования опции пользовательского интерфейса. Если лист уже защищен паролем, просто используйте строку userinterfaceonly.

Объект защиты и свойство защиты рабочего листа

Вы также можете просмотреть параметры защиты через объект Protection, связанный с Worksheet, и, если он не имеет необходимого значения, изменить его, вызвав метод Protect с соответствующим набором аргументов, например,

Свойства рабочего листа, чтобы проверить, защищена ли функция

Вы можете проверить, защищено ли содержимое, используя:

Аналогичным образом вы можете проверить защиту сценариев ( ws.ProtectScenarios и DrawingObjects ( ws.ProtectDrawingObjects )

Объекты рисования

True для защиты фигур. Значение по умолчанию — Истина.

Содержание

Защищает заблокированные ячейки.

Сценарии

Верно для сценариев защиты. Этот аргумент действителен только для рабочих листов. Значение по умолчанию — Истина.

Разрешить форматирование ячеек

True позволяет пользователю форматировать любую ячейку на защищенном листе. Значение по умолчанию — False.

Разрешить столбцы форматирования

True позволяет пользователю форматировать любой столбец на защищенном листе. Значение по умолчанию — False.

Разрешить форматирование строк

True позволяет пользователю форматировать любую строку в файле protected. Значение по умолчанию — False.

Разрешить вставку столбцов

True позволяет пользователю вставлять столбцы на защищенный лист. Значение по умолчанию — False.

Разрешить вставку строк

True позволяет пользователю вставлять строки на защищенный лист. Значение по умолчанию — False.

Разрешить вставку гиперссылок

True позволяет пользователю вставлять гиперссылки на лист. Значение по умолчанию — False.

Разрешить удаление столбцов

True позволяет пользователю удалять столбцы на защищенном листе

Разрешить удаление строк

True позволяет пользователю удалять строки на защищенном листе

Разрешить сортировку

True позволяет пользователю выполнять сортировку на защищенном листе. Каждая ячейка в диапазоне сортировки должна быть разблокирована или незащищена. Значение по умолчанию — False.

Разрешить фильтрацию

True позволяет пользователю устанавливать фильтры на защищенном листе. Пользователи могут изменять критерии фильтра, но не могут включать или отключать автоматический фильтр. Пользователи могут устанавливать фильтры для существующего автоматического фильтра. Значение по умолчанию — False.

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

True позволяет пользователю использовать отчеты сводной таблицы на защищенном листе. Значение по умолчанию — False.

Читайте также:

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