Скачиваний:
29
Добавлен:
02.05.2014
Размер:
102.91 Кб
Скачать

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

Собственно процедура – это подпрограмма. Она начинается оператором 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, отделяются друг от другазапятой:

PrivateSubCommand1_Click()

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

End Sub

Функции

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

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

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

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

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

EndFunction

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

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

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

Private Sub Command1_Click( )

Dim Tax As Currency

Tax= НДС(100, 0.2)

Print Tax

End Sub

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

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

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

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

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

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

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

Соседние файлы в папке Лекции по информатике