![]() |
ПроцедурыDate: 2015-10-07; view: 432. Вызов Безусловный переход Условная инструкция Select Case: выбор ветви из набора условий Использование блока Select Case позволяет принять решение при наличии нескольких условий; синтаксис: Select Case переменная_выбораCase 1 значение 1инструкция 1Case 2 значение 2инструкция 2.' Case Else выполняется, если не выполнено ни одно из' предыдущих условий Case Else инструкция kEnd SelectСинтаксис Select Case разрешает использование условий < > =, при этом используется ключевое слово Is, пример: Select Case peopleCase Is < 100000инструкция 1Case Is < 500000инструкция 2End SelectВ качестве значения для Case можно указывать не одно значение, а несколько через запятую. Пример использования: Dim A As SingleA = Val(Text1.Text)Select Case ACase Is < 0: lbl1.Caption = "<0"Case Is = 0: lbl1.Caption = "0"Case Else: lbl1.Caption = ">0"End SelectИнструкция безусловного перехода - это GoTo. Безусловный переход выполняется без анализа условий. Часто используется совместно с инструкцией On Error в обработчиках ошибок, см. ниже, праkтическая работа 50. Вызов Call в процедуре временно передаeт управление другой процедуре, после завершения которой управление снова передаeтся той процедуре, из которой последовал вызов. Вызов процедуры может выглядеть так: Call имя_вызываемой_процедуры при этом инструкция Call может отсутствовать. Часто требуется передавать процедуре значения параметров, необходимых для еe выполнения. Примеры: ' процедура Sub Peter() вызывает процедуру Sub FrZeit(Zeit), ' передавая ей значение 7 для еe аргумента; после ' завершения процедуры Sub FrZeit(Zeit) управление '' возвращается к Sub Peter(). Далее Sub Peter() вызывает ' процедуру Sub Message(); после щелчка пользователя' на кнопке окна, выводимого функцией MsgBox, управление' возвращается к Sub Peter(), которая завершается.Sub Peter()FrZeit 7MessageEnd Sub Sub FrZeit(zeit)For i = 1 To zeit.NextEnd Sub Sub Message()MsgBox "Es ist zu frueh" ' слишком раноEnd Sub ' два способа вызова процедуры с несколькими аргументамиSub Paul()KlPause 15, 25Call KlPause(11, 30)End Sub Sub KlPause(zeit As Integer, Dauer As Integer)If zeit >= 12 ThenDauer = Dauer*2End IfEnd SubПроцедура есть последовательность инструкций, объединeнных для выполнения. Различают процедуры обработки событий и процедуры общего назначения: процедуры Sub, Function, Property, Event. Для создания процедуры общего назначения нужно использовать область окна кода ( General ) ( Declarations ) Процедуры обработки событий (закрытые процедуры) являются процедурами типа Private; их можно вызвать только внутри формы. Процедуры являются общими (открытыми), если они могут быть вызваны процедурами другой формы/модуля; используется ключевое слово Public. Общая процедура должна содержаться в модуле. Вызов процедуры из другой процедуры можно выполнить одним из следующих способов: · использование имени процедуры, пример: · If kkKK > 70 Then · Proc1 End If · использование вызова Call, пример: Call Proc1 · если при обращении к процедуре требуются значения аргументов, то вызов может выглядеть так: Proc1 44, 56 ' два числа - это передаваемые аргументы, или: Call Proc1(44, 56) Список аргументов процедуры, при необходимости с указанием типа, размещают в скобках в строке имени процедуры, при этом в процедурах обработки событий список аргументов определeн событием и не может быть изменeн пользователем. При программировании необходимо контролировать передачу аргументов.
Передача аргументов может проводиться: по значению - ByVal ( в этом случае процедуре передаeтся копия этого значения) и по ссылке - ByRef (в этом случае вызванная процедура получает адрес памяти передаваемой переменной). Инструкция в процедуре Sub/Function может передавать значения вызываемой процедуре, при этом могут использоваться именованные аргументы, которые можно перечислять в произвольном порядке. Именованный аргумент состоит из: · имени аргумента, · символов : = , · значения аргумента, пример: · Private Sub Command1_Click() · Dim x1 As Variant · MsgBox Title:="отпуск", Prompt:="Едем в отпуск в Испанию" · или · x1 = MsgBox(Title:="отпуск", _ · Prompt:=" Едем в отпуск в Испанию", Buttons:=4) End Sub
|