Здавалка
Главная | Обратная связь

Создание функции пользователя.

ПРАКТИЧЕСКОЕ ЗАДАНИЕ №1. MICROSOFT EXCEL, РАЗРАБОТКА ПРИЛОЖЕНИЙ.

Табличный редактор Microsoft Excel используется и разработчиками и простыми пользователями. Однако многие пользователи не используют язык программирования VBA и тем самым они реализуют не более 10% от реальных возможностей Excel.

Откройте MS Excel. Создайте новую рабочую книгу.

Создание функции пользователя.

Синтаксис функции пользователя:

Function ИмяФункции (СписокПараметров)

Инструкции

End Function

Пример №1: Создать функцию, которая вычисляет . Откройте редактор Microsoft Visual Basic Application. Для того чтобы создать пользовательскую функцию необходимо добавить стандартный модуль в проект командой Insert/ Module. Наберите следующий код:

Function my_cos(x As Double) As Double

my_cos = x*(Cos(x)) ^ 3

End Function

Функции описанные в стандартном модуле попадают в раздел Определенные пользователем списка Категория окна Мастер функций.

Теперь рассмотрим использование данной функции. Вернитесь в редактор Microsoft Excel, откроете первый лист, введите данные в столбец А: 7, 8, 9, 10,…20 (используйте средство автозаполнения) . Столбец А будем считать значениями переменной х . В столбце В в соответствующих строках посчитаем значения пользовательской функции.

  А В
х у(х)
=меню Вставка/Функция/Определенные пользователем. В появившемся диалоговом окне необходимо ввести значение х. Примечание !! В Excel не вводят значения, а ссылаются на ячейки, поэтому вы должны щелкнуть на ячейке со значением х=7. В конце набора формулы ставится Enter. А затем маркером заполнения продлить формулу. (Маркер заполнения – чтобы им воспользоваться необходимо подвести указатель мыши в правый нижний угол ячейки, и когда появится жирный маркер потянуть вниз ячейку. При этом результат будет копироваться. В каждой ячейке мы не пишем формулы, достаточной в первой посчитать и воспользоваться маркером заполнения для всех остальных).
 

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

 

Пример №2. Менеджер издательства по оптовой продаже книг для привлечения покупателей ввел шкалу цен со скидками. Если продается от 100 до 200 экземпляров книг, то скидка от ее отпускной цены составляет 7%, если продается от 201 до 300 экземпляров, то 10%, а если свыше 300 экземпляров – 15%. Кроме того, для постоянных клиентов предусмотрена дополнительная скидка в размере 5%.

Создадим пользовательскую функцию пользователя для расчета стоимости партии книг. Параметрами этой функции будут цена одной книги, количество и скидка.

Для параметра Скидка предусмотрим только 2 допустимых значения: 1 – для постоянных клиентов и 0 – в противном случае.

Прежде чем создавать функцию пользователя, сначала составим список покупок. Откройте второй лист рабочей книги и наберите следующую шапку таблицы. Заполните самостоятельно 5 записей , кроме последнего столбца. При этом в столбце Скидка могут быть только 2 значения – 1 или 0.

Номер Название книги Цена книги Кол-во Скидка Стоимость
           

 

Введите следующий код в стандартном модуле.

Примечание ! В VBA знак процента не пишется, необходимо перевести значение в число, например 7% соответствует число 0.93.

 

Function stoimost(sena, kol, skidka)

Dim stoim

If kol < 100 Then stoim = kol * sena

If kol >= 100 And kol < 200 Then stoim = kol * sena * 0.93

If kol >= 200 And kol < 300 Then stoim = kol * sena * 0.9

If kol >= 300 Then stoim = kol * sena * 0.85

If skidka = 1 Then stoimost = stoim * 0.95 Else stoimost = stoim

 

End Function

Примените функцию для расчета столбца Стоимость.

 

Пример №3. Создадим пользовательскую функцию, где параметром будет ссылка на диапазон. Составим аналог функции Sum(), которая возвращает сумму значений из указанных диапазонов ячеек.

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

Function my_sum(diapazon) As Integer

 

Dim s, n, m, i, j As Integer

n = diapazon.Rows.Count

m = diapazon.Columns.Count

s = 0

For i = 1 To n

For j = 1 To n

s = s + diapazon(i, j)

Next j

Next i

my_sum = s

End Function

 

Примечание: Введя в качестве параметра функции my_sum ссылку на диапазон, нам необходимо определить количество строк и столбцов этого диапазона для того, чтобы просуммировать значения из ячеек этого диапазона. У диапазона есть два свойства Columns и Rows, которые указывают на столбцы и строки диапазона. Столбцы и строки обладают свойством Count - число элементов в семействе.

Самостоятельно: Ввести данные таблицы. Создать пользовательские функции, с помощью которых будут определены название отдела, название должности в зависимости от номера в списке, возраст и количество отработанных лет в зависимости от дат рождения и дат приема на работу, и функцию определяющую пол человека.





©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.