Офисное программирование. Лабораторная работа 1. Лабораторная работа 1. Создание простейших пользовательских функций
Скачать 110.62 Kb.
|
Лабораторная работа №1. СОЗДАНИЕ ПРОСТЕЙШИХ ПОЛЬЗОВАТЕЛЬСКИХ ФУНКЦИЙ Программа – это законченная последовательность команд (инструкций) языка программирования, описывающая алгоритм решения поставленной задачи. Программы на языке VBA создаются в виде процедур в окне редактора VBE (Visual Basic Editor). Процедура представляет собой последовательность совместно выполняемых инструкций, имеющая имя. Инструкция – это синтаксически завершенная конструкция, представляющая отдельное действие, описание или определение. Инструкция VBA является полной командой и может содержать: ключевые слова – слова или символы, распознаваемые как элемент VBA; операторы – знаки операции в выражениях; переменные – именованная область памяти, отведенная для временного хранения данных, которые могут изменяться во время выполнения программы; константы – именованный элемент, сохраняющий постоянное неизменное значение в процессе выполнения программы; выражения – комбинация ключевых слов, операторов, переменных и констант, результатом которой является строка, число или объект. Выражения можно использовать для выполнения вычислений, обработки символов или проверки данных. Инструкции могут быть следующих типов: инструкции описания – именуют переменные, константы или процедуры, а также могут задавать типы данных; инструкции присвоения – присваивают значение или выражение переменной, константе или свойству объекта. исполняемые инструкции – инициируют действие. Они могут выполнить метод Excel или функцию, а также могут организовать повторение или ветвление блоков программы. Эти инструкции часто содержат математические или условные операторы. Для пояснения определенной инструкции в коде программы используются комментарии. При выполнении процедуры комментарии игнорируются. Их можно вносить в любое место процедуры, начиная с апострофа (') или со слова Rem, за которым следует пробел. Совокупность созданных пользователем и хранящихся совместно процедур составляет модуль. В документе или рабочей книге допускается любое количество модулей. VBA позволяет создавать такие типы процедур, как процедуры-подпрограммы, процедуры-функции. Процедура-функция – это набор команд, которые должны быть выполнены. Принципиальное отличие функции одно: функция возвращает результирующее значение вызвавшей ее программе. В программе это значение будет затем использовано. Функция всегда возвращает единственное значение. Ee можно запустить из другой VBA-процедуры или использовать в формулах на рабочих листах. Синтаксис записи процедур-функций имеет вид: Function имя([аргументы]) И Тело функции нструкции языка VBA имя=выражение End Function При создании процедуры-функции после написания ключевого слова Function, имени функции, ее аргументов редактор автоматически дописывает оператор End Function. Имя (идентификатор) процедуры-функции должно отражать суть функции. Это распространяется и на имена переменных, констант, процедур и других объектов. В VBA имеются следующие ограничения на имена: длина имени должна быть не более 255 символов; имя не должно содержать точку, пробел, символа процента, !, &, #, @, $; имя может состоять из любой комбинации букв, цифр, символов и начинаться с буквы; не следует использовать имена, совпадающие с ключевыми словами VBA и именами встроенных функций и процедур; имена должны быть уникальны внутри области, в которой они определены. Приложение Excel включает в себя большое количество встроенных функций разных категорий: математические, финансовые, даты и времени, статистические и т. д., а так же – определенные пользователем. Если при работе в приложении Excel требуется многократно выполнять одни и те же вычисления, то рационально воспользоваться возможностью создания новых функций с помощью языка VBA. Такие функции называются пользовательскими функциями и могут использоваться в формулах рабочего листа Excel или в других программах, написанных в VBA. Для создания и работы с пользовательской функцией необходимо выполнить следующие действия: создать процедуру-функцию в стандартном модуле VBE; активизировать рабочий лист приложения Excel; выполнить команду Вставка/Функции/список Категория/Определенные пользователем. В списке функций выбрать по имени созданную функцию. Задание 1. Создать пользовательскую функцию для решения следующей задачи. Задана себестоимость товара, процент налога на добавленную стоимость и процент возможной прибыли от продажи товара. Требуется вычислить размер цены за товар. Для решения задачи на рабочем листе Excel должна быть оформлена следующая таблица (рис. 9). Разработанную пользовательскую функцию надо будет записать в соответствующие ячейки столбца E.
Для создания пользовательской функции необходимо выполнить следующие действия: войти в редактор VBE (нажать клавиши Alt-F11); вставить стандартный модуль (команда меню Insert/Module); набрать код программы (см. рис. 10).
Тело функции в данном задании составляют три инструкции присвоения, последовательно идущие друг за другом и расположенные в отдельных строках. В общем случае инструкция присвоения предписывает выполнить выражение, заданное в правой части инструкции, и присвоить полученный результат переменной, константе или свойству объекта, чье имя указано в левой части выражения. В конце тела процедуры необходимо указать инструкцию имя = выражение для определения возвращаемого значения. Далее выполнить следующие действия: перейти на рабочий лист приложения Excel; для первого товара в столбце Цена вставить созданную функцию; скопировать функцию в последующие строки. Задание 2. Создать программный код для вычисления функций f(x) и f1(x) в соответствии с заданным вариантом. В VBA не существует функции, вычисляющей значение π. Поэтому для расчета ее значения используется формула ПИ = арктангенс единицы умножить на 4. Встроенная функция VBA Atn(число) вычисляет арктангенс задаваемого числа. Встроенные математические функции Cos(число), Sin(число) вычисляют соответственно значения синуса и косинуса заданного выражения.
Задание 3. Вариант 1. Правительство гарантирует, что инфляция в новом году составит i % в месяц. Какого роста цен за год можно ожидать? Вариант 2. За первый год производительность труда на предприятии возросла на p1 %, за второй и третий – соответственно на p2 % и p3 %. Найти среднегодовой прирост производительности (в процентах). Вариант 3. Продавец в начале каждой зимы повышает отпускную цену на молоко на p %, а каждым летом – снижает на столько же процентов. Изменится ли цена товара и если да, то в какую сторону и насколько через n лет? |