ВУЗ:
Составители:
79
полнение макросов). Функция GetPassWord выдает окно ввода для набора текста,
являющегося паролем. Если пользователь введет level1, то все листы этой книги
станут видимы и доступны для записи. Для этого используется свойство объекта
Sheet (лист) Visible= True и метод Unprotect (снять защиту записи). Для проверки
работы этой программы защитим вручную несколько листов своего Excel-файла и
сделаем их невидимыми через меню, затем сохраним файл на диске и вновь откроем
его. В появившемся окне ввода наберем знакомый нам пароль и убедимся, что
скрытые листы вдруг появились и запись в ячейке тоже проходит. Если наберем
другое слово, программа выполняется далее – по условию ElseIf проверяется сов-
падение набранного Вами слова со следующим паролем level2. В случае совпадения
открывается только лист 1 и с него же снимается защита на запись. А в случае не-
совпадения программа выполняется далее – по следующему условию ElseIf прове-
ряется совпадение набранного Вами слова со следующим паролем level3. Таким об-
разом, разветвление можно продолжать столько, сколько нужно. В нашем примере
это последняя ветвь, которая сделает лист 1 видимым, но не снимет с него защиты
на запись. Если же ни на одну из ветвей перейти не удалось (введенное Вами слово
не совпало ни с одним из предусмотренных паролей), программа выполнит ветвь,
следующую за служебным словом Else.
2.9.2. Управляющая инструкция Select Case
Инструкция Select Case также предназначена для разветвления программы, но ее
возможности шире, чем у инструкции If-Then-Else. В следующей программе те же
действия выполняются средствами структуры Select Case, только пароль вводится
без использования функции, а сообщения переведены на английский язык.
Sub Pro26()
Dim PassW As String
Dim Sheet As Object
PassW = LCase(InputBox("Enter Password:", "Authorization"))
Select Case PassW
Case "level1"
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Visible = True
Sheet.Unprotect
Next
MsgBox "You have read/write access to all sheets."
Case "level2"
ActiveWorkbook.Worksheets(1).Visible = True
ActiveWorkbook.Worksheets(1).Unprotect
MsgBox "You have read/write access to one worksheet."
Case "level3"
ActiveWorkbook.Worksheets(1).Visible = True
MsgBox "You have read-only access to one worksheet."
Case Else
MsgBox "Password incorrect."
End Select
Страницы
- « первая
- ‹ предыдущая
- …
- 78
- 79
- 80
- 81
- 82
- …
- следующая ›
- последняя »
