где
[Private | Public] – необязательные ключевые слова, определяющие
область видимости функции;
Function – ключевое слово, указывающее на то, что это функция;
ИмяФункции – имя функции (задается самим пользователем);
СписокПараметров – список формальных параметров, который может
отсутствовать;
As – (как) ключевое слово, предваряющее значение типа
данных;
Тип – тип данных возвращаемого значения;
ВозвращаемоеЗначение – значение, возвращаемое функцией;
End Function – ключевые слова, указывающие на окончание
блока функции.
Особенность:
1) функция вычисляет единственное результирующее значение простого типа;
2) носителем возвращаемого значения является ее имя, т.е. идентификатор Имя_функции. Поэтому в теле функции должен присутствовать хотя бы один оператор присваивания, в левой части которого стоит имя описываемой функции, причем хотя бы один оператор такого вида должен быть выполнен. Этот оператор присваивания и определяет значение, вычисляемое с помощью функции.
Пример 1.
|
|
Постановка задачи. Построить функцию пользователя, вычисляющую значение функции в заданных точках.
Технология выполнения задания:
1 Исходные данные:
a, b, x Î R
Результат: z Î R.
2 Набрать в стандартном модуле проекта следующую пользовательскую функцию:
Function z(a, b, x)
z1 = Abs(Log(x) / Log(10)) - Sqr(Abs(Cos(x) - Exp(x)))
z2 = Abs(Tan(Abs(a * x - b)) / Sin(Abs(x)) + b)
z3 = Atn(z2 / Sqr(Abs(1 - z2 ^ 2)))
z = Log(Abs(z1 * z3))
End Function
По умолчанию она попадает в раздел Определенные пользователем списка Категория окна Мастер функций.
3 Вычислить:
- перейти из окна VBA в окно MS Excel;
- выбрать ячейку А1 и ввести число 0,126;
- выбрать ячейку А2 и ввести число 0,842;
- выбрать ячейку А3 и ввести число 0,34;
- выделить ячейку А4, в которой найти значение функции;
- выбрать команду Вставка→Функция;
- в первом окне мастера функций в списке Категория найти значение Определенные пользователем;
- в списке Функция выбрать функцию z и нажать кнопку ОК;
- во втором окне Мастера функций в поле А ввести ссылку на ячейку А1, в поле В ввести ссылку на ячейку А2, в поле Х ввести ссылку на ячейку А3 и нажать кнопку ОК.
Пример 2.
Поставка задачи. Построить функцию, которая возвращает стоимость товара по его стоимости без НДС и значению ставки НДС.
Технология выполнения задания:
1 Исходные данные:
СтоимостьБезНДС, НДС Î Z
Стоимость Î Z.
2 Набрать в стандартном модуле проекта следующую пользовательскую функцию:
Function Стоимость (СтоимостьБезНДС, НДС)
Стоимость = СтоимостьБезНДС * (1 + НДС / 100)
End Function
3 Вычислить, например, стоимость товара с учетом НДС при условии, что НДС равен 25%, а стоимость товара без учета НДС равна 1000. Для этого:
|
|
- выбрать ячейку А2 и ввести число 1000 (стоимость без НДС);
- выбрать ячейку В2 и ввести число 25 (НДС);
- выделить ячейку С2, в которой найдем значение функции;
- выбрать команду Вставка→Функция;
- в первом окне мастера функций в списке Категория найти значение Определенные пользователем
- в списке Функция выбрать функцию стоимость и нажать кнопку ОК.
4 Во втором окне Мастера функций в поле СтоимостьБезНДС ввести ссылку на ячейку А2, а в поле НДС – ссылку на ячейку В2 и нажать кнопку ОК.
2.3 Пользовательские подпрограммы-процедуры
Зарезервированное слово Sub происходит от слова subroutine (подпрограмма), которое является синонимом термина процедура. Процедура представляет собой именованную часть кода, выполняющую определенные действия: вывод текста, выполнение арифметических действий, проигрывание видеофрагмента. Процедура может иметь параметры и в результате выполнения последовательности инструкций изменять их значения.
Синтаксис:
[Private | Public] Sub ИмяПроцедуры (СписокПараметров) As Тип
Тело процедуры (строки кода)