Что делает макрос: В предыдущем макросе мы устанавливали защиту на лист, теперь давайте узнаем, как снять защиту с листа.
Как макрос работает
Этот код запускается событием рабочей книги (BeforeClose— перед закрытием). При нажатии на кнопку закрыть срабатывает событие и запускается макрос. Макрос автоматически снимает защиту с указанного листа (в сохранении книги в данном примере нет необходимости).
Код макроса
Private Sub Workbook_BeforeClose(Cancel As
Boolean)
'Снимаем защиту с листа
Sheets("Отчет").Unprotect
Password:="Akademia_excel"
End Sub
Как работает это код
Мы указываем лист(ы), с которого хотим снять защиту — «Отчет», в данном случае. Мы также прописываем аргумент Password (пароль): = «Akademia_Excel» (т.к. в предудущем примере мы ставили такой же пароль).
Как использовать
Для реализации этого макроса, Вам нужно скопировать и вставить его в код события Workbook_BeforeClose. Размещение макроса здесь позволяет запускать макрос непосредственно перед закрытием excel-файла.
- Активируйте редактор Visual Basic, нажав ALT + F11.
- В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы и модуль ЭтаКнига.
- Правой кнопкой мыши нажмите на модуле ЭтаКнига и выберите View Code
- В левой части окна выберите объект WorkBook (Excel автоматом предложит написать макрос для события Workbook_Open (можете позже удалить его за ненадобностью)
- В правом выпадающем списке свойство BeforeClose
Добрый день!
Подскажите, а если другой пользователь откроет данный файл в общей папке, у него тоже снимется защита с листа?
Анна, честно говоря не помню( сейчас протестировать не могу.
С совместным доступом к файлу у Excel не всё супер работает, поэтому не скажу точно.