Функция пользователя
Знания основ программирования на VBA может быть полезно при создании функций пользователя. С функциями пользователя можно работать с помощью мастера функций точно так же , как и со встроенными функциями рабочего листа.
Рассмотрим создание функции пользователя на примере.
Результаты работы менеджеров фирмы в квартале представлены
в таблице.
Рис.11. Данные о стаже работы и объеме реализованной продукции сотрудниками фирмы
Руководство решило выплатить премию по результатам квартала с учетом следующих условий.
· Если продукции реализовано не меньше, чем на 1 000 000 руб., то премия составляет 1% от стоимости реализованной продукции.
· Если продукции продано меньше, чем на 1 000 000 руб., то премия составляет 0,5% от стоимости реализованной продукции.
· Если стаж работы в фирме не меньше 5 лет, то к премии выплачивается доплата в размере 0,2% от стоимости реализованной продукции.
Первый способ решения задачи. Используя логическую функцию ЕСЛИ составим и введем в ячейку формулу: ЕСЛИ(C2>1000000;1%*C2;0,5%*C2)+ЕСЛИ(B2>=5;0,2%*C2;0).
Размножим формулу до ячейки D6.
Однако при частом использовании заданных условий расчета премии целесообразно создать функцию пользователя.
Второй способ решения задачи.
В редакторе Visual Basic выполним команду Insert –Module. В открывшемся пустом окне наберем текст программы см. рис. 12.
Рис.12. Пример функции пользователя для расчета премии
Выйдите из редактора Visual Basic, вызовите мастер функций и выберите категорию Определенные пользователем. В окне Функция вы увидите функцию Премия. Вызовите эту функцию, и вы увидите диалоговое окно см. рис. 13. Задавая объем и стаж, вы можете пользоваться этой функцией, как и любой другой встроенной функцией.
Рис.13. Диалоговое окно функции пользователя Премия