Как защитить/снять защиту листа с помощью vba?
В VBA есть метод PROTECT, который можно использовать с листом. В этом методе у вас есть возможность защитить лист паролем или без него. А ещё с листа можно защитить объект. Все это мы увидим подробно в этом уроке.
В этом уроке мы увидим, как защитить и снять защиту одного или нескольких листов с помощью кода VBA.
Напишите код VBA для защиты листа
Чтобы защитить лист, необходимо сначала указать лист, а затем использовать метод защиты. Вот шаги.
- Используйте объект листов, чтобы указать лист.
- Введите имя листа, который хотите защитить.
- Введите точку, чтобы получить список методов и свойств.
- Выберите метод проекта или введите его.

Sheets("Sheet1").Protect
Полезные ссылки: Запуск макроса – Средство записи макросов – Редактор Visual Basic – Персональный справочник по макросам
Напишите код VBA, чтобы снять защиту листа
Чтобы защитить лист, необходимо сначала указать лист, а затем использовать метод снятия защиты. Вот шаги.
- Укажите лист с помощью объекта листа.
- Затем введите имя листа, который вы хотите защитить.
- Введите точку, чтобы получить список методов и свойств.
- Выберите метод «Снять защиту» или войдите в него.

Sheets("Sheet1").Unprotect
Защитите лист паролем
Если вы хотите установить пароль при защите листа, в этом случае вам нужно использовать аргумент пароля для указания пароля. Предположим, вы хотите установить на листе пароль «test123» для его защиты. Код будет такой, как показано ниже.

Sheets("Sheet1").Protect Password:="test123"
Снять защиту листа паролем
Аналогично, если вы хотите снять защиту с листа, вы должны указать пароль в аргументе пароля. Допустим, пароль, который вы использовали для защиты листа, — «ADSBP», поэтому код для снятия защиты будет таким, как показано ниже.
Sheets("Sheet1").Unprotect Password:="ADSBP"
Есть одна вещь, на которую вам следует обратить внимание: обратите внимание на прописные буквы, поскольку VBA различает прописные и строчные буквы.
Другие вещи, которые нужно знать
Как я уже сказал, мы используем метод VBA «Защита», и в этом методе есть аргументы, отличные от «Пароля», которые вы можете использовать.
expression.Protect (Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)
- DrawingObjects : для защиты и снятия защиты фигур.
- Содержимое : ДЛЯ защиты заблокированных ячеек и всей диаграммы.
- Сценарии : для защиты сценариев в электронной таблице.
- UserInterfaceOnly : для защиты только пользовательского интерфейса, а не макросов.
- AllowFormattingCells : разрешить пользователю применять форматирование к ячейкам.
- AllowFormattingColumns : разрешить пользователю применять форматирование к столбцам.
- AllowFormattingRows : разрешить пользователю применять форматирование к строкам.
- AllowInsertingColumns : разрешить пользователю вставлять новые столбцы.
- AllowInsertingRows : разрешить пользователю вставлять новые строки.
- AllowInsertingHyperlinks : разрешить пользователю создавать гиперссылки.
- AllowDeletingColumns : разрешить пользователю удалять столбцы.
- AllowDeletingRows : разрешить пользователю удалять строки.
- Разрешить сортировку : разрешить пользователю сортировать строки, столбцы и таблицы.
- AllowFiltering : разрешить фильтрацию столбцов.
- AllowUsingPivotTables : разрешить пользователю использовать сводную таблицу.
Комментарии
- Обязательно используйте надежные пароли, состоящие из букв верхнего и нижнего регистра, цифр и символов.
- Если вы забудете свой пароль, Microsoft не сможет его восстановить. Поэтому обязательно запишите свой пароль где-нибудь в надежном месте.
- Если лист защищен без пароля и теперь вы хотите защитить его паролем, сначала необходимо снять с него защиту. А затем повторно защитите его паролем, используя код, который вы видели выше.