Пример определения общедоступной процедуры 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 хранится в памяти компьютера между вызовами процедуры.
6.3. Процедура Function (Функция)
Объявление процедуры Function (Функция) по своему синтаксису подобно Sub (Подпрограмма). Отличия обусловлены тем, что функция возвращает значение:
[{Private|Public}] [Static] Function имя [(аргументы)] [As тип]
[инструкции]
имя = выражение
[Exit Function]
[инструкции]
End Function
После ключевого слова As (Как) может быть указан тип данных, возвращаемых функцией. Внутри тела процедуры Function (Функция) обязательно должен встретиться оператор, который присваивает значение