- •8. Объявление переменных. Объявление переменных в модулях и процедурах. Область действия переменных и процедур. Пример передачи в процедуру аргументов.
- •11.Основные свойства и методы объектов Application, Workbook, Worksheet.
- •15. Работа с массивами. Оператор Option Base. Динамическая модель индексации и оператор ReDim. Примеры использования этих операторов. Функция управления массивами Array. Пример использования.
- •20. Структура принятия решения If-Then-Else
- •21. Дополнительное условие ElseIf
- •22. Управляющая структура For-Next
- •23. Управляющая структура While-Wend
- •24. Управляющая структура Do-Loop
- •25. Управляющая структура Select Case
- •26. Управляющая структура For-Each-Next
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