Блок операторов 2

...

Else

Блок операторов n

End If

Программа Ргос2 отображает запрос на ввод пароля. Если пароль введен правильно, программа предоставляет пользо­вателю определенные возможности работы с рабочей книгой и сообщает ему об этом.

Private Sub Ргос2_ IfThenElseIf()

Dim Password As String

Dim Elem As Object

Password = GetPassword

If Password = "level 1" then

For Each Elem In Form1

Elem.Font.Name = “Ms Sans Serif”

Elem.Font.Italic = True

Elem.Font.Size = 10

Next Elem

ElseIf Password = "level 2 "

For Each Elem In Form1

Elem.Font.Name = “Ms Extra”

Elem.Font.Italic = False

Elem.Font.Size = 14

Next Elem

ElseIf Password = "level 3''

For Each Elem In Form1

Elem.Font.Name = “Ms Sans Serif”

Elem.Font.Bold = True

Elem.Font.Size = 20

Next Elem

Else

MsgBox "Пароль не корректен. Повторите ввод пароля."

End If

End Sub

Function GetPassword ()

GetPassword = Lease (InputBox ("Введите пароль: ", "Пароль"))

End Function

В РгосЗ 1 ключевое слово Elself с последующим условием использу­ется дважды. Новое условие вносит в порядок выполнения команд допол­нительные изменения, если проверка первого условия закончилась неуда­чей. В РгосЗ! первое условие указано сразу за ключевым словом If. В нем проверяется равенство переменной Password строке "/eve//". Если пере­менная не равна строке, VBA переходит к первому ключевому слову Elself, где проверяет следующее условие — равенство переменной Password стро­ке "/eve/2". Начиная с этого момента, программа использует только новое условие, "забывая" о старом. Если равенства опять нет, управление пере­ходит к следующему ключевому слову Elself и т. д.

В строке 3 процедуры РгосЗ! вызывается функция GetPassword, в которой использованы новые элементы. Рассмотрим более подробно эти элементы.

Function GetPassword ()

GetPassword = Lease (InputBox("Enter Password: ", " Password")) End Function

Здесь во второй строке заданы обращения к двум встроенным функ­циям VEA-Lcase и InputBox. Первая преобразует все буквы переданной в нее строки в строчные. Вторая выводит на экран диалоговое окно с запро­сом на ввод данных пользователем. У этой функции есть несколько необя­зательных аргументов, из которых нас интересуют только первые два. Один из них - строка, отображаемая в окне над полем для ввода. Второй содержит строку заголовка диалогового окна. При вызове функции Input-Box на экране появляется диалоговое окно с заданными заголовком и тек-

стом - приглашением, кроме того оно содержит пустое поле, в котором пользователь может ввести данные. Значение, возвращаемое InputBox, за­висит от того, какую кнопку щелкнет пользователь. Если это - ОК, воз­вращается введенная строка, если - Отмена (Cancel), то пустая. В нашем примере буквы этой строки передаются в функцию Lease, которая преоб­разует их в строчные. В блоке, начинающемся сразу за ключевым словом If, помещен цикл For-Each-Next (он подробно описан ниже в разделе "Управляющая структура For-Each-Next"). В этом цикле перебираются все листы активной рабочей книги, с каждым из которых выполняются два действия - свойству Visible присваивается значение True и вызывается ме­тод Unprotect. Первое действие позволяет пользователю видеть лист, вто­рое - снимает с листа защиту паролем. У метода Unprotect есть один аргу­мент — строка с паролем. Но в данном случае пароль для защиты листов мы не использовали, поэтому Unprotect вызван без аргументов. В других бло­ках программы свойство Visible и метод Unprotect вызываются выборочно, в зависимости от введенного пароля.

№21 Управляющая структура Select Case

Структура Select Case позв. в завис-ти от знач.пере­менной или выражения выполнить один из нескольких фрагментов про­граммы. Select Case работает с единств. оцениваемым выражением.Синтаксис:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: