6.2. Процедура Sub (Подпрограмма)
Процедура Sub (Подпрограмма) представляет собой последовательность операторов языка Visual Basic, выполняющая определенные действия, не возвращающая значений. Синтаксис объявления подпрограммы следующий:
[{Private|Public}] [Static] Sub имя ([список_аргументов])
[инструкции]
[Exit Sub]
[инструкции]
End Sub
Ключевое слово Private (Частная) указывает на то, что данная процедура видна только внутри текущего модуля, а Public (Общая) делает ее общедоступной.
Другое ключевое слово Static (Постоянный) информирует Visual Basic о необходимости сохранения значений внутренних переменных между вызовами процедуры, хотя от этого они и не становятся видимыми для других подпрограмм.
Процедура Sub (Подпрограмма) может получать входные данные – аргументы, которые перечисляются в круглых скобках. Если аргументы отсутствуют, круглые скобки должны оставаться пустыми.
Необязательная в использовании инструкция Exit Sub (Выход из подпрограммы) позволяет досрочно завершить работу процедуры в тех случаях, когда это вам бывает необходимо.
Пример определения общедоступной процедуры Sub (Подпрограмма) общего назначения, которая выдает нужное количество гудков:
Public Sub Trill (intCount As Integer) ‘ начало процедуры
If intCount <1 Then Exit Sub ‘ если intCount <1, то выходим
For i = 1 To intCount ‘ цикл For… Next от 1 до intCount
Beep ‘ подача звукового сигнала из динамика компьютера
Next ‘ переходим к следующей итерации цикла For… Next
End Sub
В данной процедуре, кроме обычных операторов и инструкций языка Visual Basic были использованы комментарии, представляющие собой текст, поясняющий код программы.
Чтобы Visual Basic не воспринимал комментарии в качестве неверного кода, перед ними ставится символ «‘» или инструкция Rem. Когда Visual Basic встречает признак комментария, он игнорирует остальные символы до конца текущей строки.
Теперь в коде любой другой процедуры данной формы можно осуществлять вызов процедуры Trill с аргументом – количеством гудков:
Trill 10
Чтобы процедуру можно было вызывать извне текущего программного модуля, при ее вызове требуется дополнительно указать имя формы или модуля, где она была определена. Например, если процедура Trill находится в форме Проба, то она вызывается аналогично методу данной формы:
Проба.Trill 10
Проиллюстрируем режим сохранения значения внутренних переменных между вызовами процедуры, благодаря использованию ключевого слова Static (Постоянный). Можно привести пример такой процедуры, которая выполняет какие-то действия только ограниченное число раз:
Public Static Sub Proc1 () ‘ процедура Proc1 без аргументов
Dim CallCount As Integer ‘ объявляем целую переменную
If CallCount> = 5 Then Exit Sub ‘ если CallCount> =5 – выход
CallCount = CallCount +1 ‘ увеличиваем переменную на 1
…далее выполняется что-то полезное…
End Sub ‘ завершение процедуры
Эта процедура подсчитывает количество своих вызовов, сохраняя его в переменной CallCount. Процедура Proc1 выполняет какие-то полезные действия только в течение первых 5-ти вызовов, а следующие работают «вхолостую».
Данный пример иллюстрирует тот факт, что значение переменной CallCount хранится в памяти компьютера между вызовами процедуры.
Данный текст является ознакомительным фрагментом.