Автор: Пользователь скрыл имя, 16 Февраля 2012 в 22:24, курсовая работа
Целью курсовой работы является получение представлений о функциях VBA, а также рассмотрение практической реализации встроенной функции. Для достижения поставленной цели, нами поставлены следующие задачи, которые сводятся к рассмотрению:
функций класса Format;
функций класса Conversion
функций класса Information
функций класса String
функций класса DateTime
функций класса Math
функций класса Financial
и использования функций Excel и VBA
Введение 4
1 Теоретическая часть 5
1.1 Стандартные функции для форматирования Format 5
1.2 Функция преобразования данных (класс Conversion) 6
1.3 Получение информации о типе данных (класс Information) 9
1.4 Строковые функции (класс String) 10
1.5 Функции даты и времени (класс DateTime) 11
1.6 Математические функции (класс Math) 15
1.7 Финансовые функции (класс Financial) 16
1.8 Использование встроенных функций Excel и VBA 18
2 Практическая часть 21
Выводы и рекомендации 24
Библиографический список 25
Например, предположим, что требуется записать дату оплаты по квитанции предыдущим месяцем. Тогда следует использовать такой оператор:
Dim DateS As Date
DateS = DateAdd("m", -1, Date)
Функция DateAdd всегда возвращает корректное значение даты. Если добавить один месяц к дате 31 января, то функция DateAdd возвращает значение 28 февраля для не високосного года и 29 — для високосного.
Для вычисления разности двух дат используется функция DateDiff, которая позволяет вычислить, сколько определенных интервалов времени (год, месяц, неделя) прошло между двумя заданными датами или моментами времени. Например:
IngРазница = DateDiff (m, #5/11/2009#, #5/11/2011#)
После выполнения этого оператора переменная IngРазница будет содержать значение, определяющее количество месяцев, прошедших между двумя указанными датами. В данном примере аргумент "m" сообщает функции DateDiff о том, что разность во времени нужно измерять в месяцах.
Для работы с числовыми значениями в языке VBA существует целый ряд математических функций, которые будут полезны при решении разнообразных вычислительных задач, как простых, так и достаточно сложных. Они могут использоваться не только при арифметических расчетах, но и при вычислении разнообразных алгебраических и тригонометрических величин. Основные математические функции, имеющиеся в VBA, приведены в таблице 1.7.
Таблица 1.7 — Встроенные математические функции языка VBA
Функция | Возвращаемое значение |
Abs(N) | Возвращает абсолютное значение N. |
Atn(N) | Возвращает арктангенс N как угол в радианах. |
Cos(N) | Косинус угла N, где N — это угол, измеренный в радианах. |
Exp(N) | Возвращает константу е, возведенную в степень N. (е — это основание натуральных логарифмов и она (приблизительно) равна 2,718282). |
Fix(N) | Возвращает целую часть N. Fix не округляет число, а отбрасывает любую дробную часть. Если N является отрицательным, Fix возвращает ближайшее отрицательное целое большее, чем или равное N |
Int(N) | Возвращает целую часть N. Int не округляет число, а отбрасывает любую дробную часть. Если N является отрицательным, Int возвращает ближайшее отрицательное целое меньшее, чем или равное N. |
Log(N) | Возвращает натуральный логарифм N. |
Rnd(N) | Возвращает случайное число; аргумент является необязательным. Используйте функцию Rnd только после инициализации VBA-генератора случайных чисел оператором Randomize. |
Sgn(N) | Возвращает знак числа: -1, если N — отрицательное; 1, если N — положительное; 0, если N равно 0. |
Sin(N) | Возвращает синус угла; N — это угол, измеренный в радианах. |
Sqr(N) | Возвращает корень квадратный из N. VBA отображает ошибку времени исполнения, если N — отрицательное. |
Tan(N) | Возвращает тангенс угла; N — угол в радианах. |
Если среди математических функций VBA нужная пользователю функция отсутствует, ее можно создать собственными силами, подготовив процедуру типа Function, которая будет решать нужную задачу, используя стандартные функции языка. После создания функции следует сохранить ее в специальном модуле для дальнейшего использования.
В языке VBA существует целый ряд функций, которые позволяют выполнять расчеты, используемые при различных финансовых операциях. Например, эти функции можно применять для расчетов выплат по ссуде или возвращения инвестиций. Перечень финансовых функций представлен в таблице 1.8.
Таблица 1.8 — Встроенные финансовые функции языка VBA
Функция | Возвращаемое значение |
DDB(стоимость, остаток,период) | Возвращает величину амортизации имущества за данный период, используя метод двойного процента со снижающегося остатка |
FV(ставка, кпер, плата,сумма) | Возвращает будущее значение вклада на основе периодических постоянных платежей и постоянной процентной ставки |
Impt(ставка, период,кпер, сумма) | Возвращает величину выплаты за указанный период на основе периодических постоянных платежей и постоянной процентной ставки |
IRR(значения()) | Возвращает внутреннюю скорость оборота для ряда последовательных операций с наличными, представленными числовыми значениями |
MIRR(значения () , фин_ставка,реинвест_ставка) | Возвращает модифицированную внутреннюю скорость оборота средств для ряда последовательных периодических операций с наличными |
Nper(ставка, платех, сумма) | Возвращает общее количество периодов выплаты для данного вклада на основе периодических постоянных выплат и постоянной процентной ставки |
NPV(ставка, значения()) | Возвращает чистый текущий объем вклада, используя учетную ставку, а также объемы будущих платежей (отрицательные значения) и поступлений (положительные значения) |
Pmt(ставка, кпер, сумма) | Возвращает величину выплаты по ссуде на основе постоянных выплат и постоянной процентной ставки |
PPmt () | Возвращает платежи по процентам за данный период на основе периодических постоянных выплат и постоянной процентной ставки |
PV (ставка, кпер, плата) | Возвращает текущий объем вклада на основе периодических постоянных платежей и постоянной процентной ставки |
Rate(кпер, плата, сумма) | Возвращает процентную ставку за один период при выплате ренты |
SLN(стоимость, остаток,период) | Возвращает величину непосредственной амортизации имущества за один период |
SYD(стоимость, остаток,срок_эксплуатации, период) | Возвращает годовую амортизацию имущества для указанного периода |
IIf (выражение, результатTrue, результатFalse) | Возвращает значение результат True, если в результате вычисления выражения, заданного аргументом выражение, получено значение True. В противном случае возвращается значение результат False |
Choose (индекс, вариант1 [, вариант2, ]... [, вариантN, ]]) | Возвращает значение из списка аргументов вариант1, вариант2, вариантN, определяемое вычисленным значением аргумента индекс. Иначе говоря, если значение выражения индекс равно 1, возвращается первый элемент списка, если 2 — второй и т.д. |
Switch (выражение1,значение1[, выражение2,значение2]…[, выражениеN, значениеN, ] ] ) | Функция последовательно вычисляет значения выражений, заданных аргументами выражение1-выражениеN в списке аргументов, и как только будет получено первое значение True, возвращает выражение, определяемое соответствующим аргументом значение |
Полный синтаксис этих функций и описание необязательных аргументов, которые здесь опущены, приводится в справочной системе VBA. Кроме перечисленных выше основных категорий функций в языке VBA имеются также прочие типы функций, к которым, в частности, относятся функции выбора, дублирующие некоторые варианты записи операторов условного перехода.
Рассматривая использование встроенных функций VBA в Excel большинство пользователей отметит MsgBox. Функция MsgBox — одна из наиболее популярных функций языка VBA. Она очень часто используется при отладке процедур в редакторе VBA, поскольку, вставив оператор с этой функцией в любое место процедуры, можно приостановить вычисления и отобразить на экране в диалоговом окне любой интересующий вас промежуточный результат. Основное достоинство функции MsgBox в том, что она не только возвращает значения, но и выводит пользователю диалоговое окно с указанным сообщением и несколькими кнопками. Ознакомившись с сообщением, пользователь должен дать на него ответ, щелкнув на той или иной кнопке в окне. Ответ пользователя, определенный им посредством щелчка на одной из кнопок в диалоговом окне сообщения, и является тем самым значением, которое возвращает функция MsgBox. Данная функция имеет пять аргументов, из которых только один обязателен. Синтаксис функции MsgBox следующий:
MsgBox (сообщение [,кнопки] [,заголовок] [,файл_справки, раздел])
Здесь сообщение — обязательный аргумент, который может быть любым строковым выражением, определяющим отображаемое в диалоговом окне сообщение для пользователя. Кнопки — необязательный аргумент, представляющий собой числовое выражение, задающее количество и тип отображаемых в диалоговом окне кнопок. Если этот аргумент опущен, то выводится только одна кнопка ОК. Допустимые значения для этого аргумента приведены в таблице 1.9.
Таблица 1.9 — Допустимые значения аргумента кнопки функции MsgBox
Имя константы | Числовое значение | Описание |
vbOKOnly | 0 | Отображается только кнопка ОК |
vbOKCancel | 1 | Отображаются кнопки ОК и Отмена (OK, Cancel) |
vbAbortRetryIgnore | 2 | Отображаются кнопки Прервать, Повтор, Пропустить (Abort, Retry, Ignore) |
vbYesNoCancel | 3 | Отображаются кнопки Да, Нет, Отмена (Yes, No, Cancel) |
vbYesNo | 4 | Отображаются кнопки Да, Нет (Yes, No) |
vbRetryCancel | 5 | Отображаются кнопки Повтор, Отмена (Retry, Cancel) |
vbCritical | 16 | Отображается значок критического предупредительного сообщения (в виде белого крестика в красном кружке) |
vbQuestion | 32 | Отображается значок предупреждающего запроса (в виде синего вопросительного знака в белом кружке) |
vbExc1amation | 48 | Отображается значок предупреждающего сообщения (в виде черного вопросительного знака в желтом треугольнике) |
vbInformation | 64 | Отображается значок информирующего сообщения (в виде синей буквы i в белом кружке) |
vbDefaultButton1 | 0 | Выбор по умолчанию первой кнопки |
vbDefaultButton2 | 256 | Выбор по умолчанию второй кнопки |
vbDefaultButton3 | 512 | Выбор по умолчанию третьей кнопки |
vbDefaultButton4 | 768 | Выбор по умолчанию четвертой кнопки |
vbSystemModal | 4096 | Режим модальности:
все программы |
На рисунке 1.1 представлен результат использования констант, приведённых в таблице 1.10. Необязательный аргумент заголовок содержит текст, который отображается в строке заголовка окна сообщений. Если этот аргумент опущен, то в заголовке будет выведено имя приложения. Необязательный аргумент файл_справки — это строковое выражение, определяющее имя справочного файла Windows. Необязательный аргумент раздел — это числовое выражение, указывающее раздел в справочном файле. Если в список аргументов включен один из этих аргументов, то должен быть включен и второй.
Значения
1—5 параметра кнопки
могут быть просуммированы со значениями
16—64 и 256—4096. В этом случае первые значения
определяют состав кнопок диалогового
окна, вторые — вид отображаемого в окне
значка, а третьи — выбор кнопки по умолчанию.
Например, если в качестве значения параметра
указать выражение 3+64+512, то в диалоговом
окне будут отображены кнопки Да, Нет,
Отмена, значок информирующего сообщения
и по умолчанию будет выбрана кнопка
Отмена.
vbOKOnly | vbOKCancel | vbAbortRetryIgnore |
vbYesNoCancel | vbYesNo | vbRetryCancel |
vbCritical | vbQuestion | vbExc1amation |
vbInformation | vbSystemModal |
Рисунок 1.1 – Вид получаемых экранных сообщений
Ниже приведен пример использования функцией MsgBox встроенной константы vbYesNoCancel (см. табл. 1.9):
Sub А()
MsgBox "Нажмите нужную кнопку", vbYesNoCancel, "Контрольный пример"
End Sub
Как выглядит соответствующее окно сообщений, показано на рисунке 1.2.
Рисунок 1.2 — Окно сообщения, отображаемое при выполнении функции MsgBox
Чтобы закрыть выведенное функцией MsgBox диалоговое окно, пользователь должен щелкнуть на одной из его кнопок. В результате при завершении выполнения функция MsgBox возвращает числовое значение целого типа, определяющее ту кнопку, на которой щелкнул пользователь.
Задача:
При откорме каждое животное должно получать
не менее 9 ед. белков, 8 ед. углеводов и
11 ед. протеина. Для***************************
Питательные вещества | Количество единиц питательных веществ, на 1 кг. | |
Корм 1 | Корм 2 | |
Белки | 3 | 1 |
Углеводы | 1 | 2 |
Протеины | 1 | 6 |
Для решения данной оптимизационной задачи необходимо сначала формализовать модель линейного программирования, т.е. определить целевую ячейку, ограничения. Как сказано в условии задачи имеются требования в области того, сколько веществ должна получать каждое животное. Поскольку нужно найти оптимальный состав 1 кг. корма, зададим переменные решения следующим образом:
Ч1 – часть корма вида 1.
Ч2 – часть корма вида 2.
С помощью данных из исходной таблицы по запасу и количествам питательных веществ разных видов представим количества основных элементов в 1 кг. корма:
Количество белков (В1) в 1 кг. смеси корма = 3Ч1+Ч2
Количество углеводов (В2) в 1 кг. смеси корма = Ч1+2Ч2
Количество жиров (В3) в 1 кг. смеси корма = Ч1+6Ч2
Теперь скомбинируем выражения с требованиями по количеству запасов питательных веществ:
3Ч1+Ч2≥9;
Ч1+2Ч2≥8;
Ч1+6Ч2≥11.
Информация о работе Использование встроенных функций Excel и VBA