Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятие процедур.docx
Скачиваний:
4
Добавлен:
24.12.2018
Размер:
116.28 Кб
Скачать

Процедуры и функции

Собственно процедура – это подпрограмма. Она начинается оператором Sub и заканчивается оператором End. Подпрограммы могут вызываться или самим VB, или другими процедурами.

Макрос VBA – это процедура типа Sub, не имеющая аргументов. Это единственный класс процедур типа Sub, способных выполняться непосредственно путем вызова по имени либо из редактора, либо из приложения.

В пустые скобки в заголовке процедуры могут быть помещены аргументы.

Аргументы

В процедурах и функциях вместо переменных можно применять аргументы. Аргументы упрощают процедуру использования процедур и восприятие программного кода:

  • аргументы помогают при создании программного кода уменьшить число объявляемых переменных;

  • при чтении кода аргументы ясно указывают, какие значения требуются процедуре от других частей программы для выполнения работы.

При вызове процедуры с аргументами программа Visual Basic заставляет определить значения для этих аргументов.

Использование аргументов в процедурах событий можно проиллюстрировать примером события MouseMove (движения манипулятора "мышь").

Для обеспечения перемещения мыши процедура будет выглядеть так:

Private Sub Command1_ MouseMove (Button As Integer, X As Single, Y As Single)

…………………… (операторы)………

End Sub

Как видно, передаются 3 аргумента: состояние кнопок, координаты X и Y.

Примеры процедур

Рассмотрим пример - процедуру приветствия (вывод приветствия на экран):

Sub Привет( )

Print "Здравствуйте, я – ваша тетя!"

End Sub

Вызов процедуры осуществляется по её имени (Привет), например нажатием кнопки:

Private Sub Command1_Click( )

Привет

End Sub

Если нужно оперативно изменять информацию, то в процедуре можно использовать задание аргументов, например:

Sub Привет1(Msg1, Msg2 As String)

Print "Друзья!" & Msg1; Msg2

End Sub

Имена аргументов в заголовке процедуры отделяются друг от друга запятой, а в операторе – точкой с запятой. Со строковыми данными имена аргументов соединяется знаком конкатенации (амперсандом).

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

Данные, содержащиеся в объявленных в процедуре Привет1 аргументах Msg1, Msg2, отделяются друг от друга запятой:

Private Sub Command1_Click()

Привет1 " прекрасен", " наш союз..."

End Sub

Функции

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

То-есть, процедура типа "Функция" (Function) возвращает результат вычислений под её именем в алгебраической форме.

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

Function НДС(Стоимость As Currency, Процент As Single) As Currency

НДС = Стоимость * Процент

End Function

За скобками аргументов указывается тип данных результата вычислений.

Таким образом, имя функции (НДС) можно рассматривать как переменную, объявление которой осуществляется оператором Function.

Вызов функции отличается от вызова процедуры:

Private Sub Command1_Click( )

Dim Tax As Currency

Tax= НДС(100, 0.2)

Print Tax

End Sub

Как видно, при вызове функции аргументы указываются в скобках, т. е., функция вызывается следующим образом:

Возвращаемое значение = Функция (Аргумент1, Аргумент2, …)

В отличие от функции, при вызове процедуры, аргументы не берутся в скобки, а заключаются в кавычки:

Процедура Аргумент1, Аргумент2, …

Как, в частности, в вышеприводимом примере:

Привет1 " прекрасен", " наш союз..."

При этом возвращаемое значение отсутствует.