Пропустить событие отмены защиты рабочего листа в Excel - PullRequest
2 голосов
/ 29 октября 2008

У меня есть защищенный лист Excel без пароля. То, что я хотел бы сделать, это перехватить событие, когда пользователь снимает защиту листа, чтобы я мог сгенерировать сообщение (и ворчать!). Я могу настроить проверку событий для приложения, при открытии новых книг и т. Д., Но не для снятия защиты.
У кого-нибудь есть идея?

Ответы [ 2 ]

1 голос
/ 29 октября 2008

Изменить меню можно с помощью Tools-> Customize. Защитить / снять защиту можно настроить для запуска макроса, например:

Sub UnprotectTrap()
If ActiveSheet.ProtectContents = True Then
    MsgBox "Tut,tut!"
    ActiveSheet.Unprotect
Else
    ActiveSheet.Protect

End If
End Sub
0 голосов
/ 29 октября 2008

Невозможно поймать пользователя, снявшего защиту листа, но вы можете предупредить его, если он сохранит книгу без повторной защиты листа.

В модуле Workbook введите этот код или что-то в этом роде

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  If Sheets("MyProtectedSheet").ProtectContents = False Then
    MsgBox "The sheet 'MyProtectedSheet' should not be left unprotected. I will protect it before saving", vbInformation
    Sheets("MyProtectedSheet").Protect
  End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...