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 хранится в памяти компьютера между вызовами процедуры.

Более 800 000 книг и аудиокниг! 📚

Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением

ПОЛУЧИТЬ ПОДАРОК

Данный текст является ознакомительным фрагментом.