Вызов подпрограммы процедуры Sub
Синтаксис процедуры типа Sub
Процедура типа Sub
[ Public | Private] [Static] Sub имя [(параметры)]
[операторы внутри процедуры]
End Sub
Public - процедура доступна для всех других процедур модулей проекта. По умолчанию процедура Sub объявлена типа Public.
Private процедура доступна для других процедур только того модуля, в котором она описана.
Static - локальные переменные процедуры сохраняются в промежутках времени между вызовами этой процедуры.
Sub - название процедуры.
имя - имя процедуры Sub устанавливается пользователем и подчиняется правилам образования имен переменных.
параметры – в простейшем случае это имена переменных, значения которых необходимо обрабатывать в процедуре SUB. Их условно можно подразделить на входные и выходные формальные параметры. Например, для заголовка процедуры: Private Sub max ( ByVal N, ByVal M, R)
входные параметры N, M будем считать исходными для работы подпрограммы. Выходной параметр R служит для передачи результатов работы подпрограммы при возврате в вызывающую процедуру. По умолчанию все формальные параметры после работы подпрограммы возвращаются на место фактических в вызывающую процедуру. Такой возврат отменятся, если перед формальными параметрами введено ключевое слово ByVal. Формальные параметры могут быть описаны.
1 способ. Вызов выполняется отдельным оператором Call:
Например:
Call max (a, b, r1)
Фактические параметры также условно делятся на входные и выходные. Например, a, b - входные фактические параметры передаются на место входных формальных параметров N, M. Выходной фактический параметр r1 принимает значения выходного формального параметра R
Sub max(ByVal N, ByVal M, R)
Call max (a, b, r1)
В данном случае говорят, что передача фактических параметров а, b на место формальных N,M происходит по ²Значению².
Так как при параметре R отсутствует ByVal, то r1 и R имеют одну и ту же ячейку памяти и значение R, как бы передается на место r1 (в таком случае говорят, что передача параметра происходит по ²Ссылке²).
По умолчанию формальные и фактические параметры должны быть согласованы по количеству, порядку следования и типу. Фактические параметры описываются в вызывающей процедуре.