Лабораторная работа 16
Тема: Работа с текстовыми файлами и разработка функций пользователя с помощью VBA.
Цель: Приобретение практических навыков программирования собственных функций, создания окон сообщений и ввода данных, назначения макроса управляющим элементам.
Создание функции пользователя
Задание 1. Протабулировать функцию F на отрезке [5, 20] с шагом 1,5;
при a = 12, b = 0,5, с помощью разработанной функции пользователя.
Функция F имеет вид:
Указания:
1. Создать новую книгу Лаб. 2 VBA- Функции пользователя в личной папке, подпапке с именем VBA.
2. Лист 1 переименовать в "F".
3. В редакторе Visual Basic создать функцию пользователя с именем F от трех переменных - F(x, a, b).
Создать модуль командой Insert – Module
Задать функцию.
После этого нужно сохранить книгу с поддержкой макросов, нажав на кенопуку сохранить в окне MS Visual Basic
Теперь используем функцию F(x,a,b) так же как обычную встроенную функцию, например ОКРУГЛ(A1)
Пример кода простейшей функции Test(і), которая будет прибавлять к і 5.
Function Test(i As Integer) As Integer
Test = i + 5
End Function
Результат ее вызова:
4. На рабочем листе F протабулировать функцию (создать таблицу значений функции F для каждого х в диапазоне [5;20]):
Проверка правильности:
При х = 5.0, F = 7,50;
x = 20, F = 0,43.
5 В тетрадь записать:
- построенную таблицу значений x и F (предварительно задав 1 и 2 десятичных знака);
- код функции F на VBA;
- формулу с вложенной разработанной функцией (например, формулу расчета значения F для x=5.0).
Задание 2. Рассчитать таблицу изменения значений рентабельности и цены в зависимости от изменения себестоимости:
Указания:
1. Расчетные формулы:
где: R – рентабельность,
С –цена,
S – себестоимость,
P – прибыль.
Исходные данные:
P = 85, S изменяется от 800 до 1000 с шагом 25.
2. Для расчета рентабельности создать функцию РЕНТАБ (P, S), для определения цены – ЦЕНА (S, P), данные разместить на Листе 2, который назвать " РЕНТАБ, ЦЕНА", третий лист удалить.
Для создания новой функции необходимо выполнить команду Insert – Procedure на панели инструментов.
Появиться окно создания новой процедуры, где необходимо указать следующие опции:
В окне редактирования кода появиться следующая заготовка, в которую необходимо вписать код функции.
3. Отформатировать таблицу по образцу задания (обратите внимание: убрать линии сетки (меню Сервис или заливка ячеек рабочего листа белым цветом), задать тень таблицы - заливка соответствующих ячеек серым цветом).
4. Записать в тетрадь также:
- коды функций РЕНТАБ, ЦЕН на VBA;
- вызовы функций - формулы расчета первого значения рентабельности и цены.
Организация диалога (окна сообщений и ввода)
Задание 3. Ввод и вывод числовых значений (команды InputBox и MsgBox).
Указания:
1. Создать процедуру с именем CalcRC (Расчет R и С), которая осуществляет:
1) ввод с клавиатуры значения прибыли P (P = 85, значение по умолчанию = 10) с помощью функции InputBox:
2) ввод с клавиатуры значения себестоимости S (S = 1000, значение по умолчанию = 20) с помощью функции InputBox:
Синтаксис функции InputBox:
InputBox(Текст сообщения, Заголовок, Значение по умолчанию)