Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1888.DOC
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.52 Mб
Скачать

6.1.4. Простейшая функция пользователя

Рассмотрим простейший демонстрационный пример построения функции пользователя, которая задается выражением F(x) = x2. Для того, чтобы это сделать, достаточно в стандартном модуле (рис. 6.2) набрать следующий код:

Function F(x As Double) As Double

F=x^2

End Function

Еще раз необходимо обратить внимание, что код пользовательской функции вводится в стандартном модуле, который добавляется в проект командой Insert Module. В проекте много модулей, поэтому очень важно не перепутать их. Активный модуль в окне Project – VBAProject выделяется серым цветом.

Как только пользовательская функция создана, по умолчанию она попадает в раздел Определенные пользователем списка Категория окна Мастер функций. Найдем, например, значение этой функции при х = 2,3. Для этого нужно выполнить следующее:

 ввести число 2,3 в ячейку А1 рабочего листа;

 выбрать ячейку В1, в которой найти значение функции;

 выбрать команду Вставка Функция;

 в первом окне Мастера функций выбрать функцию F и нажать кнопку ОK;

 во втором окне Мастера функций в поле X ввести ссылку на ячейку А1 и нажать кнопку ОK (рис. 6.3). Значение функции найдено.

Рис. 6.2. Код пользовательской функции в модуле

Рис. 6.3. Вычисление значения пользовательской функции при помощи Мастера функций

6.1.5. Вычисление стоимости партии продаваемых книг при помощи пользовательской функции

Естественно, что функция, приведенная в пункте 6.1.4, очень простая. Цель предыдущего примера была совершенно в другом – показать, как строятся и используются функции.

Рассмотрим более сложный пример построения функции пользователя. Допустим, что руководство издательства по оптовой продаже книг для привлечения покупателей вводит прогрессивную шкалу цен. Если продается от 100 до 200 экземпляров книги, то скидка от ее отпускной цены составляет 7%, если продается от 201 до 300 экземпляров, то скидка составляет 10%, а если свыше 300 экземпляров, то – 15%. Кроме того, для постоянных клиентов предусмотрена дополнительная скидка в размере 5%. Создадим функцию пользователя с именем Стоимость для расчета стоимости партии книг. Параметры этой функции назовем ЦенаОднойКниги, Количество и Скидка. Для параметра Скидка предусмотрим только два допустимых значения: 1 – для постоянных клиентов и 0 – для всех остальных. Определим пользовательскую функцию Стоимость следующим кодом:

Function Стоимость(ЦенаОднойКниги, Количество, Скидка)

If Количество < 100 Then

СтоимостьБезСкидки = ЦенаОднойКниги * Количество

ElseIf Количество <= 200 Then

СтоимостьБезСкидки = ЦенаОднойКниги * Количество * 0.93

ElseIf Количество <= 300 Then

СтоимостьБезСкидки = ЦенаОднойКниги * Количество * 0.9

Else

СтоимостьБезСкидки = ЦенаОднойКниги * Количество * 0.85

End If

If Скидка = 0 Then

Стоимость = СтоимостьБезСкидки

Else

Стоимость = СтоимостьБезСкидки * 0.95

End If

End Function

Итак, функция пользователя Стоимость создана. Благодаря тому, что в VBA допустимо применение русскоязычных имен, текст написанной программы ясен и прозрачен для понимания. Кроме того, это обеспечивает и простоту использования диалогового окна Мастера функций для данной функции (рис. 6.4).

Рис. 6.4. Расчет стоимости партии книг

Названия всех параметров функции Стоимость в окне Мастера функций выводятся также на русском языке. Ясная структура диалогового окна позволяет применять функцию Стоимость любому пользователю, даже не владеющему VBA. Для ее использования достаточно только знать имя этой функции.