Функция пользователя

Знания основ программирования на 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. Диалоговое окно функции пользователя Премия