Ага. Именно такой вариант. Ну и еще принуждение к включению макросов, иначе все это не сработает. Мне надоело уже отдельный лист с воплем "Включи макросы!!!" делать. Немного более другой вариант. Вскрывается гораздо проще, чем отдельный лист, но зато прикольно
В модуль листа
[vba]Код
Private Sub Worksheet_Change(ByVal Target As Range)
Me.Unprotect ("Я не пишу заглавными буквами")
For Each d In Target
d.Locked = d <> ""
Next d
Me.Protect ("Я не пишу заглавными буквами")
End Sub
[/vba]
В модуль книги
[vba]Код
Dim n_
Private Sub Workbook_BeforeClose(Cancel As Boolean): rr: End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean): rr: End Sub
Private Sub Workbook_Open(): tt: End Sub
Sub tt(): n_ = 1: qq: End Sub
Sub rr(): n_ = 0: qq: End Sub
Sub qq()
With ActiveWindow
.Zoom = 10 ^ (n_ + 1)
.DisplayGridlines = n_
.DisplayHeadings = n_
End With
Application.DisplayFormulaBar = n_
End Sub
[/vba]
Пароль на VBA - "159"
Пароль на лист "Я не пишу заглавными буквами"