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 «пароль»Конец подписки |