Синтаксис оператора Select Case

Select Case <выражение>

Case <список выражений 1>

<операторы 1>

…………..

Case <список выражений N>

<операторы N>

[Case Else

<операторы N+1>]

End Select

Здесь

<выражение> - любое численное или строковое выражение,

<список выражений i> - представляют список выражений, отделенных друг от друга запятыми или (если в интервале), то in to ik,

<операторы i>- (i=1,N) – операторы, которые выполняются, если <выражение i> совпадает с любым компонентом <список выражений i>,

[Case Else

<операторы N+1>] необязательная конструкция.

Работа:

· Вычисляется <выражение>

· Если значение <выражение> совпадает со значением из Case <список выражений i>, то выполняются соответствующие <операторы i> и затем управление передается на оператор следующий за оператором Select Case

· Если значение <выражение> не совпадает ни с одним из Case <список выражений i>, то при наличии конструкции Case Else выполняются <операторы N+1>. Если конструкция Case Else отсутствует, то сразу выполняется оператор, следующий за оператором Select Case

Пример:

Ввести номер дня недели и по его значению вывести какой это день недели: Рабочий день, Суббота или Воскресенье.

Public Sub Оператор_Select_Case1()

Dim n_day As Integer

Dim day As String

n_day = CInt(InputBox("Введите номер дня недели"))

Select Case n_day

Case 1 To 5

day = "Рабочий день"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

Case 6

day = "Суббота"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

Case 7

day = "Воскресенье"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

End Select

End Sub

Public Sub Оператор_Select_Case2()

Dim n_day As Integer

Dim day As String

n_day = CInt(InputBox("Введите номер дня недели"))

Select Case n_day

Case 6

day = "Суббота"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

Case 7

day = "Воскресенье"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

Case Else

day = "Рабочий день"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

End Select

End Sub

Операторы повтора

Для организации циклов язык VBA предоставляет несколько гибких и мощных структур – операторы повтора.

А) Оператор цикла с параметром ( For — Next)

Оператор цикла позволяет повторять группу операторов заданное число раз

Синтаксис:

For <счетчик цикла>=<начало> To <конец> [Step шаг]

<операторы>

[Exit For]

Next <счетчик цикла>

Где:

· <счетчик цикла> -любая числовая переменная, в которой сохраняется информация о количестве выполненных проходов цикла (счетчик цикла);

· Параметры <начало> и <конец> -это числовые выражения, задающие начальное и конечное значение счетчика и определяющие количество проходов цикла.

· Числовая переменная шаг задает приращение, на которое увеличивается счетчик цикла при каждом проходе. [Step шаг]необязательная фраза. При её отсутствии VBA (по умолчанию) увеличивает счетчик циклана единицу.

· Во фразе Next <счетчик цикла>имя переменной счетчикуказывать необязательно. Но при указании имени переменной улучшается читабельность программы и в случае вложенных циклов For — Next сразу видно, какому именно циклу принадлежит данное слово Next

Работа:

· Переменной <счетчик цикла> присваивается значение параметра <начало> и проверяется условие счетчик цикла < конец. Если условие неверно, то управление передается оператору, следующему за Next. Если же условие - верно, то выполняются все операторы, входящие в блок, обозначенный как <операторы>, вплоть до ключевого слова Next

· Значение переменной <счетчик цикла>увеличивается на величину, заданную во фразе [Step шаг]или на единицу, если фраза Stepне указана

· Управление возвращается

· Данный процесс будет выполняться, пока значение <счетчик цикла> не достигнет значение <конец>

· Досрочно завершить цикл For — Next можно с помощью оператора Exit For,который располагается в том месте блока <операторы>, где необходимо выйти из оператора цикла For — Next не дожидаясь условия завершения цикла.

На блок – схеме оператор изображается следующим образом:

Синтаксис оператора Select Case - student2.ru

Пример 1

Вычислить n-ый член последовательности, заданный формулой Синтаксис оператора Select Case - student2.ru , если Синтаксис оператора Select Case - student2.ru

Синтаксис оператора Select Case - student2.ru

Public Sub Prog1()

Dim n As Byte

Dim a1 As Integer, a2 As Integer, an As Integer

n = CByte(InputBox("введите N"))

a1 = 1: a2 = 1

For i = 3 To n

an = a2 + a1

a1 = a2: a2 = an

Next i

MsgBox n & "-й член последовательности = " & an

End Sub

Пример 2

Задана последовательность хiвещественных чисел. Вычислить Синтаксис оператора Select Case - student2.ru

Public Sub Prog2()

Dim n As Byte

Dim i As Byte

Dim xi As Double, s As Double

n = CByte(InputBox("введите N"))

s = 0

For i = 1 To n

xi= CDbl(InputBox("Введите " & i & "-й элемент последовательности"))

s = s + xi

Next i

Worksheets(1).Range("a1") = "Значение суммы равно"

Worksheets(1).Cells(2, 1) = s

End Sub

В) Операторы повтора

Инструкция For…Next применяется в тех случаях, когда известно число повторений.

Если число повторений неизвестно, то применяются операторы повтора.

Наши рекомендации