Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабРаботы Информатика.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.6 Mб
Скачать

Лабораторная работа №15

Vba. Пользовательские функции рабочего листа и процедуры

Цель работы: Ознакомиться с методикой создания пользовательских функций, приобрести навыки создания и применения пользовательских функций.

Функции пользователя создаются на рабочем листе с названием модуль VBA, после чего с ними можно работать с помощью мастера функций. По умолчанию созданная функция при выборе с помощью мастера функций относится к категории Определенные пользователем. Общий вид функции пользователя имеет следующий вид:

Function Имя_Функции (список_параметров) Тело_функции End Function

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

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

ЗАДАНИЕ 1. Создание функции пользователя с помощью VBA

  1. Откройте MS EXCEL.

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

  • загрузить редактор VBA командой Сервис–Макрос–Редактор Visual и вставить лист модуля командой Вставка(Insert)–Модуль

  • в стандартном модуле набрать код пользовательской функции:

Function Стоимость(СтоимБезНДС, НДС) Стоимость=СтоимБезНДС*(1+НДС/100) End Function

3. Проверить сформированную функцию: введите следующие данные в таблицу начиная с ячейки А1 (если Ваши действия будут корректными, то в библиотеке Мастера функций образуется категория Созданные пользователем и в этой категории функция Стоимость:

Таблица 44 – Определение стоимости товара

Стоимость без НДС

НДС, %

Стоимость

1000

16

=Стоимость(А2;В2)

5600

16

=Стоимость(А3;В3)

ЗАДАНИЕ 2. Менеджеру по продажам необходимо разработать функцию, позволяющую рассчитать комиссионные. Процент комиссионных зависит от объема проданного товара и начисляется по правилу, представленному в таблице 45 (эта таблица в расчетах не участвует):

Таблица 45 – Расчет комиссионных

Объем продаж, тг

Комиссионные, %

от 0 до 9999

8

от 10000 до 19999

10

от 20000 до 39999

12

более 40000

14

1. Для расчета комиссионных необходимо создать в стандартном модуле редактора VBA пользовательскую функцию:

Function Премия(Продажи) If Продажи <= 9999 Then Премия =Продажи*0.08 ElseIf Продажи <= 19999 Then Премия =Продажи*0.1 ElseIf Продажи <= 39999 Then Премия =Продажи*0.12 Else: Премия =Продажи*0.14 End If End Function

2. Рассчитать комиссионные на рабочем листе при помощи пользовательской функции Премия(Х), где аргументом функции Х является объём продаж. Создайте таблицу по ниже приведенному образцу, вводите данные, начиная с ячейки А1:

Сотрудник

Объем продаж, тг

Премия

Ахметов

1000

=Премия(В2)

Смирнов

20000

=Премия(В3)

Петрова

31250

=Премия(В4)

Сабиров

40000

=Премия(В5)

3. Сделайте изменения в задаче (самостоятельно): комиссионные продавца зависят от ставки, занимаемой менеджером. Если он принят в постоянный штат фирмы, то комиссионные начисляются обычно. Если же он находится на испытательном сроке, то комиссионные составляют 75% от номинала.

ЗАДАНИЕ 3. Создание процедур VBA

1. Перейдите в редактор VBA, нажав комбинацию клавиш Alt+F11. Добавьте в проект стандартный модуль (ВставкаМодуль)

2.Корректно наберите текст программы, соблюдая синтаксис команд

3. Выполните программу, нажав клавишу F5:

Sub ДатаВремя() MsgBox “Сегодня:” & CStr(Now)

MsgBox “Текущее время:” & Time

End Sub

4. Наберите текст процедуры и выполните программу:

Sub ПолноеИмя() Dim Имя, Фам, Отч As String Имя=InputBox(“Введите имя”) Фам=InputBox(“Введите фамилию”) Отч=InputBox(“Введите отчество”) MsgBox(”Ваше полное имя: ” & Фам & ” ” & Имя & ” ” & Отч) End Sub

5. Дополните созданную программу индивидуальной информацией: номер ИИН, место учебы, № группы, № курса