Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабораторная работа №7
VBA. ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ.
Приведем некоторые общие сведения об организации программ в VBA. Программа VBA состоит из одного или нескольких модулей.
Модуль это лист с текстом программы, вставленный в рабочую книгу. Обычно текст программы VBA начинается с опций, которые управляют описанием переменных, способом сравнения строк и т. д. Затем следует объявление глобальных переменных или констант для данного модуля, т. е. таких переменных, которые используются во всех процедурах модуля. Далее располагается непосредственно текст функций пользователя и процедур, составляющих саму программу.
При написании программ удобно внутрь текста помещать комментарии. Комментарии это пояснительный текст, который можно записать в любом месте программ. Каждая строка комментариев начинается со знака апострофа. Комментарии игнорируются компилятором, и поэтому никакого влияния на программу не оказывают. Комментарии удобно использовать также при отладке операторов для их временного отключения.
Правильно организованной программой является такая программа, которая достигает результата наименьшим количеством итераций и при этом использует оптимальный вариант решения поставленной задачи. Это достигается многими компонентами, одним из которых и является функция.
Возьмем к примеру ситуацию, когда при проектировании программы вы замечаете, что одну и ту же многошаговую операцию необходимо будет произвести с различными переменными. Разумным шагом в сложившейся ситуации является следующий - один раз написать код многошаговой операции и использовать его во всех необходимых местах данной программы, а в последствии и при написании других программ.
Процедура Function представляет собой набор команд, с помощью которого можно решить определенную задачу. Отличие процедуры Function от процедуры Sub состоит в том, что процедуры данного типа обязательно возвращают значение. При создании процедуры Function можно описать тип данных, который возвращает функция.
Синтаксис описания функции выглядит следующим образом:
Function имя ([аргументы] )[As тип]
Инструкции
имя=выражение
End Function
Параметр имя определяет имя функции.
Необязательные параметры аргументы позволяют передать в функцию требуемые значения.
Параметр As тип позволяет явно задать тип данных, который возвращает функция. Если он опущен, то по умолчанию возвращается значение типа Variant.
Внутри функции обычно имеется инструкция имя=выражение, которая используется для задания возвращаемого значения. Обратите внимание, что имя функции стоит слева от знака равенства, а параметр выражение определяет значение, которое должно быть совместимым с объявленным в параметре As тип типом данных для функции.
Процедуры Function возвращают значение, поэтому они обычно используются при выполнении вычислений, например, можно создать функцию, которая возвращает длину окружности заданного радиуса:
Function Length_C (Radius As Double) As Double
Вычисление длины окружности
Const Pi = 3.14159
Length_C = 2 * Pi * Radius
End Function
Функция Length_C возвращает значение типа Double.
Внутри тела функции определяется константа Pi и выполняется расчет длины.
Обратите внимание, что в вычисляемом выражении участвуют аргумент Radius и константа Pi, а результат расчета присваивается переменной Circumference, которая является именем функции.
Для запуска процедуры-функции можно использовать окно Immediate или обращаться к функции в другой процедуре.
Пример процедуры, в которой производится обращение к приведенной выше функции
Public Sub Start()
Dim r As Double, l As Double
r = InputBox("Введите радиус")
l = Length_C (r)
MsgBox "Result L=" & l & " r=" & r
End Sub
Задания к выполнению
Создать программу, которая обеспечит ввод y при помощи InputBox, произведет вызов кусочно-непрерывной функции g, вычисление которой производится по одному из выражений в зависимости от значения аргумента y:
Обеспечить вывод результатов на лист Excel и с использованием MsgBox.
Создать программу, в которой ввод t осуществляется в текстовое поле UserForm, для вызова функции z с тремя условиями используется кнопка, результат выводится в тестовое поле. Кроме перечисленных элементов управления, на пользовательской форме предусмотреть флажок для очистки текстовых полей, кнопку для закрытия формы. Обеспечить отображение формы при запуске файла Excel, в котором сохранен программный модуль.
Обеспечить также вывод результатов на лист Excel и с использованием MsgBox.
Отчет по работе
Предъявить процедуры, реализующие выполненные задания.