Функции и процедуры в Visual Basic.

Процедура — самодостаточный блок кода, который может быть запущен из других блоков кода. В целом каждая процедура содержит код, необходимый для выполнения одной задачи. Например, может быть процедура с именем PlaySound, которая содержит код, необходимый для воспроизведения звукового файла. Конечно, можно писать один и тот же код для воспроизведения звукового сигнала каждый раз, когда программе нужно воспроизвести звук, но гораздо более рационально создать одну процедуру, которую можно вызвать из любого места в программе.

Процедура запускается или выполняется путем ее вызова в коде. Например, для запуска процедуры PlaySound нужно просто добавить строку кода, содержащую имя процедуры, как показано ниже.

PlaySound()

Вот и все, что нужно! Когда выполнение программы дойдет до этой строки, управление перейдет к процедуре PlaySound, и будет выполнен содержащийся там код. Управление снова будет передано на следующую строку после вызова PlaySound.

Можно вызывать сколько угодно процедур. Процедуры выполняются в том порядке, в котором они вызываются. Например, может существовать также процедура с именем DisplayResults; для ее выполнения после выполнения процедуры PlaySounds вызовите процедуры, как показано ниже.

PlaySounds()

DisplayResults()

Функции и процедуры

Есть два типа процедур: функции и подпрограммы (иногда называемые subs). Функция возвращает значение в код, который вызвал ее, тогда как подпрограмма просто выполняет код. Подпрограммы вызываются при добавлении в программу строки кода, содержащей имя подпрограммы, как в следующем примере.

DisplayResults

Функции отличаются от подпрограмм, поскольку они не только выполняют код, но также возвращают значение. Например, представьте функцию, называемую GetDayOfWeek, возвращающую значение типа Integer, указывающее день недели. Для вызова этой функции сначала следует объявить переменную для хранения возвращаемого значения, а затем присвоить возвращаемое значение этой переменной для последующего использования, как показано ниже.

Dim Today As Integer

Today = GetDayOfWeek

В этом примере значение, возвращаемое функцией, копируется в переменную с именем Today и хранится для последующего использования.

Написание процедур

Написание процедуры начинается с объявления процедуры. Объявление процедуры выполняет несколько задач. Оно указывает, является ли процедура функцией или подпрограммой, присваивает процедуре имя и подробно описывает параметры, которые может иметь процедура. (Параметры будут обсуждаться подробно чуть позже на этом занятии.) Ниже приведен пример простого объявления процедуры.

Sub MyFirstSub()End Sub

Ключевое слово Sub сообщает программе, что эта процедура является подпрограммой и не возвращает значение. Дальше пишется имя процедуры (MyFirstSub), пустые скобки указывают, что у этой процедуры нет входных параметров. Наконец, ключевое слово End Sub обозначает конец подпрограммы. Весь код, выполняемый подпрограммой, находится между этими двумя строками.

Объявление функций выглядит похоже, однако, необходимо добавить тип возвращаемого значения (например, Integer, String и т. д.). Например, функция, которая возвращает значение типа Integer, может выглядеть следующим образом.

Function MyFirstFunction() As IntegerEnd Function

Ключевое слово As Integer указывает, что эта функция возвращает значение типа Integer. Для возвращения значения из функции используйте ключевое слово Return, как показано в следующем примере.

Function GetTheNumberOne() As Integer Return 1End Function

Эта функция возвратит число 1.