Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
napechatay_plizya1от поли 2.doc
Скачиваний:
2
Добавлен:
21.09.2019
Размер:
128 Кб
Скачать

25. Управляющая структура Select Case

Структура Select Case позволяет в зависимости от значения переменной или выражения выполнить один из нескольких фрагментов программы. Ее действие подобно действию структуры If-Then-Else, в которой условие переопределяется ключевым словом Elself. В примере 31 использована структура If-Then-Else для определения прав пользователя согласно введенному им паролю. В следующей программе те же действия выполняются средствами структуры Select Case.

Sub Proc38_ Select Case ( )

Dim Password As String

Dim Sheet As Object

Password = LCase (InputBox (“Введите пароль:”, “Пароль”))

Select Case Password

Case “level1”

For Each Sheet In ActiveWorkbook.WorkSheets

Sheet. Visible = True

Sheet. Unprotect

Next

MsgBox “Вы получили доступ ко всем листам рабочей книги.”

Case “level 2”

ActiveWokbook.Worksheets (1).Visible = True

ActiveWokbook.Worksheets (1).Unprotect

MsgBox “Вы получили доступ только к первому листу книги.”

Case “level 3”

ActiveWokbook.Worksheets (1).Visible = True

MsgBox “Вы получили доступ только к чтению содержимого первого листа рабочей книги.”

Case Else

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

End Select

End Sub

Ниже описаны компоненты инструкции Select Case, использованной в примере 38.

Select Case Ключевые слова, отмечающие начало структуры Select Case

Password Переменная или выражение, чье значение определяет выборфрагмента кода для выполнения. Оно должно совпадать со значением, указанным после одного из ключевых слов Case. Если ни одного совпадения нет, выполняется фрагмент, написанный после слов Case Else. Если и этих слов нет, управление передается оператору, заданному после End Select

Case“level1” Первый вариант значения. Если значение определяющего выражения совпадает с ним, выполняется фрагмент программы до следующего ключевого слова Case, а затем управление передается операторам, стоящим после End Select. Если совпадения нет, управление передается следующему Case

Case “level 2” Второй вариант значения. Действует так же, как Case “level 1”

Case “level 3” Третий вариант значения. Действует так же, как Case “level 1”

Case Else Фрагмент программы, указанный за этими словами, выполняется, если значение определяющего выражения не совпало ни с одним из предыдущих вариантов Case

End Select Ключевые слова, отмечающие конец структуры Select Case

26. Управляющая структура For-Each-Next

Это самый мощный цикл VBA - For-Each-Next. Аналогичные структуры в других языках программирования встречаются очень редко. For-Еach-Next предназначена для выполнения одной и той же группы действий над каждым объектом семейства или структуры массива. Ниже приведен пример этой структуры:

Option Explicit

Sub Замена()

Dim C As Object

For Each C In Worksheets("Лист1").Range("A1:С10")

If IsNumeric(C.Value) Then

If C.Value > 0 Then C.Value = "+"

End If

If IsNumeric(C.Value) Then

If C.Value < 0 Then C.Value = "-"

End If

If IsNumeric(C.Value) Then

If C.Value = 0 Then C.Value = 0

End If

Next C

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]