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

advertisement
Процедуры и Функции
Подпрограмма, задаваемая с помощью
ключевого слова Sub (subprogram),
называется “процедурой”, а с помощью
ключевого слова Function - “функцией”.
Процедуры
Процедура – это самостоятельная
программная единица VBA,
включающая операторы описания ее
локальных данных и исполняемые
операторы.
Процедуры
Синтаксис описания процедур
С
[Private | Public] Sub <Имя процедуры> ([<Список формальных параметров>])
[Команды]
[Exit Sub]
[Команды]
End Sub
По умолчанию процедура считается
общедоступной, то есть используется
ключевое слово Public.
Процедуры
Список формальных параметров
<Список формальных параметров> это список параметров, значения
которых передаются в процедуру или
возвращаются из процедуры при ее
вызове. Разделителем в списке
параметров является запятая.
Процедуры
Синтаксис описания списка формальных
параметров
С [ByVal| ByRef] <Имя переменной> As <Имя типа>
Ключевые слова ByVal и ByRef
определяют способ передачи параметра в
процедуру.
По умолчанию при описании
используется ключевое слово ByRef.
Процедуры
Синтаксис описания списка формальных
параметров
ByVal означает, что параметр
передается по значению. То есть,
создается локальная копия переменной с
начальным передаваемым значением и
её изменения не отразятся на
переменной, передавшей свое значение
в процедуру при вызове.
Процедуры
Синтаксис описания списка формальных
параметров
ByRef означает, что параметр
передается по ссылке. То есть, все
изменения значения передаваемой
переменной при выполнении процедуры
происходят непосредственно с этой
переменной.
Процедуры
Вызов процедуры
С <Имя процедуры> [<Список фактических параметров>]
<Список_Фактических_Параметров> –
список параметров, передаваемых процедуре.
Он должен соответствовать по количеству и
типу списку параметров, заданному в
процедуре при ее определении.
Процедуры
Пример описания процедур
П
Private Sub Пример(ByVal A As Byte, B As Integer, ByRef C As Long)
A = A +1
B = B +A
C = C +A
End Sub
Sub Проверка()
Dim X As Byte, Y As Integer, Z As Integer
X = 1 : Y = 10 : Z = 100
Пример X, Y, Z
MsgBox X ‘Отобразится 1
MsgBox Y ‘Отобразится 12
MsgBox Z ‘Отобразится …
End Sub
Функции
С
[Private | Public] Function <Имя функции> ([<Список
формальных параметров>]) As <Имя типа>
[Команды]
[<Имя функции> = <Выражение>]
[Exit Function]
[Команды]
End Function
Главное отличие функции от процедуры
заключается в том, что функция возвращает
значение, а <Имя типа> задает его тип.
Функции
Вызов функции
С <Имя переменной> = <Имя функции> ([<Список
фактических параметров>])
П
Public Function Cube(ByVal N As Integer) As Long
N=N+5
Cube = N ^ 3
End Function
Sub Проверка()
Dim X As Byte, Y As Integer
X=1:Y=5
X = Cube(Y) + 5
MsgBox Y ‘Отобразится …
MsgBox X ‘Отобразится …
End Sub
Использование именованных параметров
VBA позволяет при вызове подпрограмм
указывать значения параметров в произвольном
порядке, используя их имена.
П
Private Sub Пример(ByVal A As Byte, B As Integer)
A=A*2
B = B +A
End Sub
Sub Проверка()
Dim X As Byte, Y As Integer
X = 1 : Y = 10
Пример B := X, A := Y
End Sub
X=?
Y=?
Создание процедур и функций
•
•
•
•
•
Первый способ
Открыть программный модуль;
Набрать область видимости, Sub или
Function, имя и аргументы;
Нажать ENTER;
VBA напишет закрывающий оператор;
Написать текст подпрограммы.
Второй способ
Воспользоваться командой главного меню
Insert-Procedure и задать все необходимые
параметры.
Использование пользовательских
функций на рабочем листе
1.
2.
3.
4.
Вызываем мастер функций
командой Вставка-Функция…
или кнопкой
;
В окне Мастер функций в поле
Категория выбрать
Определенные пользователем;
В списке Выберите функцию
выбрать нужную функцию и
нажать кнопку ОК;
В появившемся окне Аргументы
функции задать аргументы и
нажать на кнопку ОК.
Download