
- •Дисциплина:
- •Часть 1. Техническое и программное обеспечение
- •Тема 9:
- •9.1 Макропрограммирование в приложениях Microsoft Office 3
- •9.2 Программирование в среде vba 26
- •9.1 Макропрограммирование в приложениях Microsoft Office
- •9.1.1 Создание макросов в Word
- •9.1.2 Назначение макросов кнопкам панелей инструментов и пунктам меню
- •Рекомендации по выполнению задания
- •9.1.3 Создание макросов в Excel
- •9.1.4 Создание макросов в PowerPoint
- •9.2 Программирование в среде vba
- •9.2.1. Настройка рабочей среды редактора Visual Basic
- •9.2.2 Создание процедур-подпрограмм
- •9.2.3 Создание процедур-функций
9.2.3 Создание процедур-функций
При работе в Excel часто возникает необходимость в вычислениях, для которых нет подходящей функции. В этом случае можно создать пользовательскую функцию. Пользовательские функции работают аналогично встроенным функциям и могут использоваться только в формулах ячеек рабочего листа. Отличие этих функций от командных макросов состоит в том, что они используют значения, передаваемые их аргументам, производят некоторые вычисления и возвращают результат в точку вызова.
Пользовательские функции Excel это VBA процедуры-функции, которые ограничиваются инструкциями Function и End Function. Внутри обязательно должна находиться инструкция присваивания некого значения имени функции. Имя функции должно быть уникальным, не содержать пробелов и символов пунктуации.
В общем случае синтаксис записи процедуры-функции имеет вид:
Function Имя ([аргументы])
инструкции
Имя_функции=выражение
End Function
В книге VBA_Excel в модуле Функции создать пользовательскую функцию СуммаСкидки для расчета в таблице Сведения о продажах (рис. 9.13) суммы скидки в зависимости от выручки от продаж по условию: для выручки на сумму до 200 000 руб скидка не начисляется; на сумму от 200 000 до 300 000 р. – скидка 3%; от 300 000 до 400 000 руб – 5%; от 400 000 до 500 000 руб – 6%; более 500 000 руб – 8%.
Рекомендации по выполнению
В книге VBA_Excel создайте таблицу Сведения о продажах (рис. 9.13).
Для столбца Сумма скидки установите денежный формат с отображением двух знаков после запятой.
Рис. 9.13 Таблица Сведения о продажах
Откройте редактор Visual Basic.
В модуле Функции вставьте процедуру-функцию с именем СуммаСкидки, типа – Function, вида доступа к процедуре – Public.
Введите аргументы функции СуммаСкидки() – Продажа и Цена и текст процедуры (рис. 9.14).
Рис.9.14 Окно кода модуля Функции с процедурой СуммаСкидки
Примечание. Аргументы функции перечисляются через запятую.
Закройте редактор Visual Basic.
Вычислите сумму скидки в таблице:
в ячейку D4 командой Вставка/Функция из категории Определенные пользователем вставьте функцию СуммаСкидки и нажмите [ОК];
в окне Аргументы функции в поле Продажа введите ссылку В4 щелчком мыши по этой ячейке на рабочем листе, в поле Цена и – С4 и нажмите [ОК]. В результате в ячейке D4 появится формула:
=СуммаСкидки(B4;C4)
скопируйте формулу из ячейки D4 в диапазон D5:D9 с использованием маркера автозаполнения.
Сохраните книгу VBA_Excel.
Продемонстрировать преподавателю результаты работы в файлах VBA_Excel и VBA_Word.
Задания для самостоятельной работы
В Excel cоздать программу, которая рассчитывает сумму скидки на покупку мебели по вводимому в диалоговом режиме значению суммы покупки по условию: при покупке на сумму до 2 000 000 руб. скидка составляет 2%; более 2 000 000 руб. – 4%. Вывод результата осуществить в диалоговом окне.
В Excel cоздать программу, которая вычисляет сумму чисел от 1 до N (число N вводить в диалоговом режиме). Вывод результата осуществить в диалоговом окне.
Контрольные вопросы
Для чего предназначен редактор Visual Basic?
Как нужно настроить рабочую среду редактора Visual Basic перед работой?
Перечислите основные элементы интерфейса редактора Visual Basic.
Перечислите основные окна редактора Visual Basic.
Как создается и активизируется процедура-подпрограмма?
Как создаются и используются пользовательские функции?
Индивидуальные задания
В среде Word создать программу, которая заменяет в документе символ X на символ Y согласно варианту, заданному преподавателем из табл. 9.5.
Таблица 9.5
Заменяемые символы
Вариант |
Символ X |
Символ Y |
1 |
! |
. |
2 |
. |
! |
3 |
, |
; |
4 |
- |
+ |
5 |
+ |
= |
6 |
< |
≤ |
7 |
> |
≥ |
8 |
a |
@ |
9 |
S |
$ |
10 |
Y |
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
= |
|
В табличном процессоре Excel создать таблицу Ведомость со столбцами: ФИО, Номер бригады, Вид детали, Количество деталей, шт., Стоимость деталей, руб, Премия, руб.
Заполнить 4 столбца таблицы исходными данными согласно варианту, заданному преподавателем из табл. 9.6., с учетом следующего:
работают две бригады рабочих;
общее количество работников 5 чел (один из рабочих должен носить вашу фамилию);
рабочие производят детали трех видов – А, В, С (внесите конкретные названия);
стоимость одной детали вида А – X руб, вида В – Yруб, вида С – Z руб;
каждый рабочий производит детали одного вида.
Создать пользовательскую функцию Стоимость_деталей для вычисления значений столбца Стоимость деталей, руб. Стоимость деталей рассчитывается как произведение количества на стоимость одной детали заданного вида.
Создать пользовательскую функцию Премия для расчета размера премии по условию: при стоимости произведенных деталей на сумму больше N руб. премия составляет 10% от этой суммы для рабочих I бригады и 12% для рабочих II бригады.
Используя пользовательскую функцию Премия заполнить столбец Премия, руб. расчетными формулами.
Обеспечить подведение итоговых сумм премий по каждой бригаде.
Таблица 9.6
Исходные данные для таблицы Ведомость
Вариант |
X |
Y |
Z |
N |
1 |
10 |
12 |
15 |
500 |
2 |
11 |
13 |
16 |
600 |
3 |
15 |
17 |
21 |
520 |
4 |
14 |
16 |
20 |
700 |
5 |
17 |
15 |
14 |
570 |
6 |
11 |
17 |
14 |
550 |
7 |
12 |
13 |
17 |
650 |
8 |
20 |
17 |
21 |
700 |
9 |
14 |
18 |
19 |
500 |
10 |
19 |
15 |
9 |
530 |
11 |
11 |
11 |
15 |
510 |
12 |
13 |
16 |
14 |
460 |
13 |
19 |
20 |
19 |
540 |
14 |
14 |
19 |
22 |
600 |
15 |
13 |
14 |
21 |
590 |