Как снять защиту с листа при открытии Excel-файла

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

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

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

Код макроса

Private Sub Workbook_BeforeClose(Cancel As
Boolean)
'Снимаем защиту с листа
Sheets("Отчет").Unprotect 
Password:="Akademia_excel"
End Sub

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

Мы указываем лист(ы), с которого хотим снять защиту — «Отчет», в данном случае. Мы также прописываем аргумент Password (пароль): = «Akademia_Excel» (т.к. в предудущем примере мы ставили такой же пароль).

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

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

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

  1. Анна

    Добрый день!
    Подскажите, а если другой пользователь откроет данный файл в общей папке, у него тоже снимется защита с листа?

    Ответить
    1. Дмитрий Якушев автор

      Анна, честно говоря не помню( сейчас протестировать не могу.
      С совместным доступом к файлу у Excel не всё супер работает, поэтому не скажу точно.

      Ответить