Процедуры и Функции Подпрограмма, задаваемая с помощью ключевого слова 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.В появившемся окне Аргументы функции задать аргументы и нажать на кнопку ОК.