АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Конструкция Select Case

Читайте также:
  1. Selection and Arrangement of Meanings
  2. The selection of lexical units for inclusion
  3. Вентилируемая кровельная конструкция
  4. Генераторы переменного и постоянного электрического тока. Конструкция и области применения. Лещинский.
  5. Для несущих конструкций покрытия используют дерево, сталь, бетон и железобетон. Предпочтение отдают сборным конструкциям.
  6. Зенитные фонари, их конструкция.
  7. Комплектность и конструкция прибора
  8. Конструкция
  9. КОНСТРУКЦИЯ
  10. Конструкция
  11. Конструкция
  12. Конструкция If . . . Then

Конструкция Select Case является альтернативой конструкции If... Then... Else в случае выполнения блока, состоящего из большого набора операторов. Конструкция Select Case предоставляет возможность, похожую на возможность конструкции If... Then... Else, но в отличие от нее она делает код более читаемым при наличии нескольких вариантов выбора.

Конструкция Select Case работает с единственным проверяемым выражением, которое вычисляется один раз при входе в эту конструкцию. Затем VBA сравнивает полученный результат со значениями, задаваемыми в операторах Case конструкции. Если найдено совпадение, выполняется блок операторов, ассоциированный с оператором Case:

Select Case проверяемое_выражение

[Case список_выражений 1

[блок_операторов 1]]

[Case список_выражений 2

[блок_операторов 2]]

...

[Case Else

[блок_операторов n]]

End Select

Каждый список выражений является списком из одного или более значений. Если в одном списке больше одного значения, они отделяются запятыми. Каждый блок операторов содержит несколько операторов или ни одного. Если окажется, что вычисленному значению проверяемого выражения соответствуют значения из нескольких операторов Case, то выполняется блок операторов, ассоциированный с первым оператором Case из всех найденных соответствий. VBA выполняет блок операторов, ассоциированный с оператором Case Else (заметим, что он необязателен), если не найдено ни одного соответствия проверяемого значения выражения и значений из всех списков операторов Case.

Рассмотрим пример:

В зависимости от значения переменной iTest, строковой переменной strResult присваиваются различные значения:

Select Case iTest

Case 1
strResult = "iTest = 1"
Case 2, 3, 4
strResult = "iTest = 2, 3 или 4"
Case 5 To 9
strResult = "iTest находится в диапазоне от 5 до 9"
Case iTest < 0
strResult = "iTest меньше 0"
Case Is > 9
strResult = "iTest больше 9"
Case Else
strResult = "iTest равно 0"

End Select

Рассмотрим следующий пример вычисления функции:

Запишем программу:

Sub пример2()

Const pi2 = 1.57

Dim x As Single

Dim z As Double

Let x = CSng(InputBox("введи x", "Ввод данных", 0))

Select Case x

Case -pi2

z = Sin(x)

Case 0

z = Cos(x)

Case pi2

z = Tan(x)

Case Else

MsgBox "Неверные исходные данные!"

Exit Sub

End Select

Call out("D1", z)

End Sub

Заметим, что конструкция Select Case вычисляет выражение только один раз при входе в нее, а в конструкции If... Then... Else вычисляются различные выражения для каждого оператора Elself. Конструкцию If... Then... Else можно заменить конструкцией Select Case, только если оператор If и каждый оператор Elself вычисляют одно и то же выражение.

Контрольные вопросы

1. Опишите и охарактеризуйте основные управляющие структуры VBA?

2. Опишите конструкцию If... Then?

3. Опишите конструкцию If... Then... Else?

4. Опишите конструкцию Select Case?


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)