Защита книги VBA (защита паролем / снятие защиты)

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

Защита книги VBA

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

Снять защиту книги VBA

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

1 Книги ("Книга1"). Снять защиту

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

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

Эта строка кода снимает защиту с книги, защищенной паролем:

1 Книги ("Книга1"). Снять защиту паролем: = "пароль"

или вы можете пропустить Пароль: =

1 Рабочие книги ("Книга1"). Снять защиту с "пароля"

Снять защиту с этой рабочей книги

Этот код снимет защиту с ThisWorkbook (ThisWorkbook - это книга, в которой хранится работающий код. Он никогда не изменится).

1 ThisWorkbook.Unprotect

или снимите защиту с ThisWorkbook паролем:

1 ThisWorkbook.Unprotect "пароль"

Снять защиту ActiveWorkbook

Этот код снимает защиту ActiveWorbook.

1 ActiveWorkbook.Unprotect

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

1 ActiveWorkbook. Снять "пароль"

Снять защиту со всех открытых книг

Этот код снимет защиту со всех открытых книг:

12345678 Sub UnprotectAllOpenWorkbooks ()Dim wb As WorkbookДля каждого ББ в книгахwb.UnprotectСледующий wbКонец подписки

Снять защиту книги - не зная пароля

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

Снять защиту со всех листов в книге

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

12345678 Sub UnProtectWorkbookAndAllSheets ()Dim ws как рабочий листActiveWorkbook.UnprotectДля каждого ws в листахws.UnprotectСледующийКонец подписки

Защитить книгу

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

Защитить книгу без пароля

Эта строка кода защитит книгу (без пароля)

1 Книги ("Книга1"). Защитить

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

Защитить книгу паролем

Этот код защитит структуру книги (с паролем)

1 Рабочие книги ("Книга1"). Защитить "паролем"

или:

1 Книги ("Книга1"). Защитить паролем: = "пароль"

Защита паролем файла Excel

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

1 Рабочие книги ("Книга1"). Сохранить как "пароль"

Примеры защиты / снятия защиты с книг

Показать все рабочие листы в защищенной книге

Эта процедура снимет защиту с книги, скроет все рабочие листы и повторно защитит книгу.

12345678910 Sub Снять защитуWB_Unhide_All_Sheets ()Dim ws как рабочий листActiveWorkbook.UnprotectДля каждого ws в листахws.Visible = xlSheetVisibleСледующийActiveWorkbook.ProtectКонец подписки

Защитить книгу и все листы

Эта процедура защитит все рабочие листы в книге, а затем защитит книгу:

1234567891011 Дополнительная защитаWB_Protect_All_Sheets ()Dim ws как рабочий листActiveWorkbook.UnprotectДля каждого ws в листахws.ProtectСледующийActiveWorkbook.ProtectКонец подписки

Вы также можете добавить защиту паролем:

1234567891011 Дополнительная защитаWB_Protect_All_Sheets_Pswrd ()Dim ws как рабочий листActiveWorkbook. Снять "пароль"Для каждого ws в листахws.Protect "пароль"СледующийActiveWorkbook.Protect «пароль»Конец подписки
wave wave wave wave wave