Возвращают значение типа Variant (String), содержащее копию строки, из которой удалены пробелы, находившиеся в начале строки (LTrim), в конце строки (RTrim) или в начале и конце строки (Trim).
Синтаксис
LTrim(строка)
RTrim(строка)
Trim(строка)
Обязательный аргумент строка представляет любое допустимое строковое выражение. Если строка имеет значение Null, возвращается значение Null.
В данном примере функции LTrim и RTrim используются для удаления пробелов, находившихся в начале и в конце строковой переменной, соответственно. Далее показано, что тоже результат может быть получен с помощью одной функции Trim.
Dim MyString, TrimString
MyString = " <-Trim-> " ' Инициализирует строку.
TrimString = LTrim(MyString) ' TrimString = "<-Trim-> ".
TrimString = RTrim(MyString) ' TrimString = " <-Trim->".
TrimString = LTrim(RTrim(MyString)) ' TrimString = "<-Trim->".
' Тот же результат можно получить с помощью одной функции Trim.
TrimString = Trim(MyString) ' TrimString = "<-Trim->".
Функция Mid
Возвращает значение типа Variant (String), содержащее указанное число символов строки.
Синтаксис
Mid(string, start[, length])
Синтаксис функции Mid содержит следующие именованные аргументы:
Элемент | Описание |
string | Обязательный. Строковое выражение, из которого извлекаются символы. Если string имеет значение Null, возвращается значение Null. |
start | Обязательный. Значение типа Long. Позиция символа в строке string, с которого начинается нужная подстрока. Если start больше числа символов в строке string, функция Mid возвращает пустую строку (""). |
length | Необязательный. Значение типа Variant (Long). Число возвращаемых символов. Если этот аргумент опущен или превышает число символов, расположенных справа от позиции start, то возвращаются все символы от позиции start до конца строки. |
Для определения числа символов в string следует использовать функцию Len.
|
Примечание. Эквивалентной функцией обработки строк по байтам является функция MidB. В этом случае аргументы указывают число байт (а не символов).
В данном примере функция Mid используется для извлечения указанного числа символов из строки.
Dim MyString, FirstWord, LastWord, MidWords
MyString = "Пример функции Mid" ' Инициализирует строку.
FirstWord = Mid(MyString, 1, 6) ' Возвращает "Пример".
LastWord = Mid(MyString, 16, 3) ' Возвращает "Mid".
MidWords = Mid(MyString, 8) ' Возвращает "функции Mid".
Функция Minute
Возвращает значение типа Variant (Integer), содержащее целое число (от 0 до 59 включительно), которое представляет минуты в значении времени.
Синтаксис
Minute(время)
Обязательный аргумент время может быть любым значением типа Variant, числовым выражением, строковым выражением или любым их сочетанием, которое представляет значение времени. Если время содержит значение Null, возвращается значение Null.
В данном примере функция Minute используется для определения минуты, соответствующей указанному времени. В среде разработчика время изображается в кратком формате с использованием текущих национальных настроек.
Dim MyTime, MyMinute
MyTime = #4:35:17 PM# ' Присваивает время.
MyMinute = Minute(MyTime) ' MyMinute содержит 35.
Функция MIRR
Возвращает значение типа Double, указывающее модифицированную норму прибыли для последовательности периодических финансовых операций (выплат или поступлений).
Синтаксис
MIRR(values(), finance_rate, reinvest_rate)
Синтаксис функции MIRR содержит следующие именованные аргументы:
Элемент | Описание |
values() | Обязательный. Массив типа Double, содержащий значения выплат и поступлений. Массив должен содержать как минимум одно отрицательное значение, соответствующее выплате, и одно положительное значение (поступление). |
finance_rate | Обязательный. Выражение типа Double, указывающее ставку по инвестициям. |
reinvest_rate | Обязательный. Выражение типа Double, указывающее процент, получаемый от реинвестиций полученных денег. |
Норма прибыли представляет собой процент по инвестициям, получаемый в результате регулярно происходящих выплат и поступлений денег. Модифицированная норма прибыли исчисляется, исходя из разных ставок по инвестициям (finance_rate) и реинвестициям (reinvest_rate).
|
Аргументы finance_rate и reinvest_rate задаются как десятичные дроби. Например, значение 12 процентов выражается как 0,12.
Порядок операций (выплат и поступлений) функция MIRR определяет по номерам элементов массива. По этой причине взаимное расположение элементов обязательно должно соответствовать действительности.
В данном примере функция MIRR используется для расчета модифицированной нормы прибыли по операциям, занесенным в массив Values(). LoanAPR представляет ставку по финансированию, а InvAPR -- процент по реинвестициям.
Dim LoanAPR, InvAPR, Fmt, RetRate, Msg
Static Values(5) As Double ' Объявляет массив.
LoanAPR =.1 ' Ставка по займу.
InvAPR =.12 ' Ставка по реинвестициям.
Fmt = "#0.00" ' Денежный формат.
Values(0) = -70000 ' Затраты на организацию бизнеса.
' Положительные суммы, отвечающие доходу за 4 года.
Values(1) = 22000: Values(2) = 25000
Values(3) = 28000: Values(4) = 31000
RetRate = MIRR(Values(), LoanAPR, InvAPR) ' Calculate internal rate.
Msg = "Модифицированная норма прибыли по пяти операциям составляет "
|
Msg = Msg & Format(Abs(RetRate) * 100, Fmt) & "%."
MsgBox Msg ' Выводим норму прибыли rate.
Функция Month
Возвращает значение типа Variant (Integer), содержащее целое число (от 0 до 12 включительно), которое представляет месяц в значении даты.
Синтаксис
Month(дата)
Обязательный аргумент дата может быть любым значением типа Variant, числовым выражением, строковым выражением или любым их сочетанием, которое представляет дату. Если дата содержит значение Null, возвращается значение Null.
В данном примере функция Month используется для определения месяца, соответствующего указанной дате. В среде разработчика дата изображается в кратком формате с использованием текущих национальных настроек.
Dim MyDate, MyMonth
MyDate = #February 12, 1969# ' Присваивает дату.
MyMonth = Month(MyDate) ' MyMonth содержит 2.
Функция MsgBox
Выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа Integer, указывающее, какая кнопка была нажата.
Синтаксис
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
Синтаксис функции MsgBox содержит следующие именованные аргументы:
Элемент | Описание |
prompt | Обязательный. Строковое выражение, отображаемое как сообщение в диалоговом окне. Максимальная длина строки prompt составляет приблизительно 1024 символов и зависит от ширины используемых символов. Строковое значение prompt может содержать нескольких физических строк. Для разделения строк допускается использование символа возврата каретки (Chr(13)), символа перевода строки (Chr(10)) или комбинацию этих символов (Chr(13) & Chr(10)). |
buttons | Необязательный. Числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения. Значение по умолчанию этого аргумента равняется 0. |
title | Необязательный. Строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения.. |
helpfile | Необязательный. Строковое выражение, определяющее имя файла справки, содержащего справочные сведения о данном диалоговом окне. Если этот аргумент указан, необходимо указать также аргумент context. |
context | Необязательный. Числовое выражение, определяющее номер соответствующего раздела справочной системы. Если этот аргумент указан, необходимо указать также аргумент helpfile. |
Значения
Ниже перечислены допустимые значения аргумента buttons:
Константа | Значение | Описание |
vbOKOnly | Отображается только кнопка "OK". | |
VbOKCancel | Отображаются кнопки "OK" и "Отмена" (Cancel). | |
VbAbortRetryIgnore | Отображаются кнопки "Прервать" (Abort), "Повторить" (Retry) и "Пропустить" (Ignore). | |
VbYesNoCancel | Отображаются кнопки "Да" (Yes), "Нет" (No) и "Отмена" (Cancel). | |
VbYesNo | Отображаются кнопки "Да" (Yes) и "Нет" (No). | |
VbRetryCancel | Отображаются кнопки "Повторить" (Retry) и "Отмена" (Cancel). | |
VbCritical | Используется значок "Критическое сообщение". | |
VbQuestion | Используется значок "Предупреждающий запрос". | |
VbExclamation | Используется значок "Предупреждение". | |
VbInformation | Используется значок "Информационное сообщение". | |
VbDefaultButton1 | Основной является первая кнопка. | |
VbDefaultButton2 | Основной является вторая кнопка. | |
VbDefaultButton3 | Основной является третья кнопка. | |
VbDefaultButton4 | Основной является четвертая кнопка. | |
VbApplicationModal | Модальное окно на уровне приложения: чтобы продолжить работу с текущим приложением, необходимо ответить на данное сообщение. | |
VbSystemModal | Модальное окно на уровне системы: все приложения будут недоступны до тех пор, пока пользователь не ответит на данное сообщение. |
Первая группа значений (0–5) указывает число и тип кнопок, отображаемых в окне диалога, вторая группа (16, 32, 48, 64) задает тип используемого значка, третья (0, 256, 512) определяет кнопку, которая является основной, а четвертая (0, 4096) модальность окна сообщения. При определении значения аргумента buttons следует суммировать не более одного значения из каждой группы.
Примечание. Данные константы определены в языке Visual Basic для приложений. Использование имен этих констант вместо их значений допускается в любом месте программы.
Возвращаемые значения
Константа | Значение | Нажатая кнопка |
vbOK | OK | |
vbCancel | Отмена (Cancel) | |
vbAbort | Прервать (Abort) | |
vbRetry | Повторить (Retry) | |
vbIgnore | Пропустить (Ignore) | |
vbYes | Да (Yes) | |
vbNo | Нет (No) |
Если указаны оба аргумента, helpfile и context, пользователь имеет возможность нажатием клавиши F1 вызвать контекстную справку. Некоторые главные приложения, например, Microsoft Excel, также автоматически добавляют в диалоговое окно кнопку "Справка".
Если окно диалога содержит кнопку "Отмена" (Cancel), нажатие клавиши ESC эквивалентно нажатию этой кнопки. Если окно диалога содержит кнопку "Справка" (Help), значит, существует связанный с ним раздел справочной системы. Однако никакое значение не возвращается до тех пор, пока не будет нажата какая-либо другая кнопка.
Примечание. Функцию MsgBox с двумя или большим числом аргументов можно использовать только в выражении. Наличие запятых, соответствующих отсутствующим аргументам, является обязательным.
В данном примере функция MsgBox используется для вывода окна диалога с сообщением об ошибке и кнопками "Да" (Yes) и "Нет" (No). Основной является кнопка "Нет" (No). Значение, возвращаемое функцией MsgBox, зависит от того, какая кнопка была нажата пользователем. Предположим, что DEMO.HLP является файлом справки, содержащим раздел с номером, равным 1000.
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Обнаружена ошибка. Продолжить?" ' Сообщение.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Кнопки.
Title = "Пример" ' Заголовок.
Help = "DEMO.HLP" ' Файл справки.
Ctxt = 1000 ' Контекст.
' Выводит сообщение.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' Нажата кнопка "Да" (Yes).
MyString = "Да" ' Выполняет действие.
Else ' Нажата кнопка "Нет" (No).
MyString = "Нет" ' Выполняет действие.
End If
Функция Now
Возвращает значение типа Variant (Date), содержащее текущую дату и время по системному календарю и часам компьютера.
Синтаксис
Now
В данном примере функция Now используется для определения текущей системной даты и времени.
Dim Today
Today = Now ' Присваивает текущую системную дату и время.
Функция Nper
Возвращает значение типа Double, указывающее количество периодов (платежей), необходимых для накопления на счету заданной суммы при фиксированной процентной ставке.
Синтаксис
NPer(rate, pmt, pv[, fv[, type]])
Синтаксис функции NPer содержит следующие именованные аргументы:
Элемент | Описание |
rate | Обязательный. Выражение типа Double, указывающее учетную ставку за период. Например, при выплате займа на приобретение автомобиля из расчета 10 процентов годовых, ежемесячная ставка составит 0 1/12, т.е. 0,0083. |
pmt | Обязательный. Выражение типа Double, указывающее размер выплат за период. Каждый платеж включает как собственно возвращаемую сумму, так и проценты, которые не изменяются от одного платежа к другому. |
pv | Обязательный. Выражение типа Double, указывающее величину суммы на текущий момент. Например, при займе на покупку автомобиля, сумма займа является текущим значением при расчете будущих платежей. |
fv | Необязательный. Выражение типа Variant, указывающее результат, который должен быть достигнут по завершении выплат. Для займа это, очевидно, нулевое значение (заем должен быть погашен). Если же вы копите деньги на обучение ребенка, а всего накопить следует 50 000 долларов за 18 лет, то результатом является сумма в 50000 долларов. Если этот аргумент опущен, подразумевается значение 0. |
type | Необязательный. Выражение типа Variant, указывающее режим выплат. Значение 0 означает, что платежи вносятся в конце каждого периода, а значение 1, что они вносятся в начале каждого периода. Если этот аргумент опущен, подразумевается значение 0. |
Функция подходит для расчета выплат по закладной (например за дом) или итогов накоплений при ежемесячных банковских взносах.
Для всех аргументов выплаченные суммы (депозитные вклады и т.п.) представляются отрицательными значениями; а полученные (дивиденды) положительными.
В данном примере функция NPer используется для определения числа периодов (платежей), необходимых для погашения займа, значение которого находится в переменной PVal. В качестве входных значений при расчете используется процентная ставка (APR / 12), размер разовых выплат (Payment), необходимый результат (FVal), а также число, задающее режим выплат (PayType).
Dim FVal, PVal, APR, Payment, PayType, TotPmts
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' Режим выплат.
FVal = 0 ' Для займа обычно 0.
PVal = InputBox("Каков объем займа?")
APR = InputBox("Какова годовая учетная ставка?")
If APR > 1 Then APR = APR / 100 ' Правильная форма.
Payment = InputBox("Какова величина ежемесячных выплат?")
PayType = MsgBox("Выплаты производятся в конце месяца?", vbYesNo)
If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD
TotPmts = NPer(APR / 12, -Payment, PVal, FVal, PayType)
If Int(TotPmts) <> TotPmts Then TotPmts = Int(TotPmts) + 1
MsgBox "Выплата займа займет " & TotPmts & " месяцев."
Функция NPV
Возвращает значение типа Double, указывающее итоговое сальдо ряда финансовых операций в проекции на текущий момент (с учетом уценки капитала).
Синтаксис
NPV(rate, values())
Синтаксис функции NPV содержит следующие именованные аргументы:
Элемент | Описание |
rate | Обязательный. Выражение типа Double, указывающее скорость уценки капитала, выраженную как десятичное число. |
values() | Обязательный. Массив типа Double, содержащий значения выплат и поступлений. Массив должен содержать как минимум одно отрицательное значение, соответствующее выплате, и одно положительное значение (поступление). |
Проекция на текущий момент позволяет определить текущую стоимость для сумм, которые будут получены или выплачены в будущем.
Порядок операций (выплат и поступлений) функция NPV определяет по номерам элементов массива. По этой причине взаимное расположение элементов обязательно должно соответствовать действительности.
При расчетах с помощью функции NPV предполагается, что момент начала инвестиций на месяц опережает первую из рассматриваемого ряда операций, а подведение итогов совпадает по времени с последней операцией ряда.
Расчет проекции основан на итогах будущих операций. Если первая операция происходит непосредственно в момент начала инвестиций, соответствующее ей значение следует просто прибавить к возвращаемому NPV результату. В массив values() это значение включать не следует.
Функции NPV и PV похожи с тем лишь исключением, что в отличие от функции NPV функция PV разрешает регистрацию операций не только в конце, но и в начале каждого периода. Кроме того, в отличие от функции PV функция NPV разрешает использовать не только постоянные, но и переменные суммы операций.
В данном примере функция NPV используется для расчета проекции на текущий момент по результатам операций, занесенных в массив Values(). RetRate представляет фиксированную норму прибыли в качестве скорости уценки капитала.
Dim Fmt, Guess, RetRate, NetPVal, Msg
Static Values(5) As Double ' Объявляет массив.
Fmt = "###,##0.00" ' Денежный формат.
Guess =.1 ' Начинает с 10 процентов.
RetRate =.0625 ' Норма прибыли.
Values(0) = -70000 ' Затраты на организацию бизнеса.
' Положительные суммы, отвечающие доходу за 4 года.
Values(1) = 22000: Values(2) = 25000
Values(3) = 28000: Values(4) = 31000
NetPVal = NPV(RetRate, Values()) ' Проекция на текущий момент.
Msg = "Проекция итогов серии операций на текущий момент составляет "
Msg = Msg & Format(NetPVal, Fmt) & "."
MsgBox Msg ' Выводит результат.
Функция Partition
Возвращает значение типа Variant (String), указывающее положение числа в вычисляемом наборе диапазонов.
Синтаксис
Partition(number, start, stop, interval)
Синтаксис функции Partition содержит следующие именованные аргументы:
Элемент | Описание |
number | Обязательный. Целое число, для которого проверяется положение относительно набора диапазонов. |
start | Обязательный. Целое число, задающее начало набора диапазонов. Это число должно быть неотрицательным. |
stop | Обязательный. Целое число, задающее конец набора диапазонов. Это число должно быть больше, чем значение start. |
interval | Обязательный. Целое число, задающее размер каждого диапазона в наборе диапазонов от start до stop. Это число не может быть меньше 1. |
Функция Partition определяет диапазон, который содержит указанное значение number. Функция возвращает значение типа Variant (String), описывающую этот диапазон. Обычно функция Partition используется в запросах. Например, можно создать запрос на выборку, показывающий распределение стоимости заказов по диапазонам (например, от 1 до 1000 тыс. руб., от 1001 до 2000 тыс. руб. и т.п.).
В следующей таблице показано, как определяются диапазоны с помощью трех наборов аргументов start, stop и interval.
Столбцы "Первый диапазон" и "Последний диапазон" содержат строки, возвращаемые функцией Partition.
Описание диапазона имеет вид:
нижняяГраница:верхняяГраница
причем нижняяГраница и верхняяГраница диапазона разделяются двоеточием (:).
start | stop | interval | До первого | Первый диапазон | Последний диапазон | За последним |
":-1" | " 0: 4" | " 95: 99" | "100: " | |||
": 19" | " 20: 29" | " 190: 199" | "200: " | |||
": 99" | "100: 119" | "1000: 1010" | "1011: " |
В приведенной выше таблице третья строка описывает ситуацию, когда разность между значениями аргументов start и stop не делится нацело на значение аргумента interval. Верхняя граница последнего диапазона равняется значению аргумента stop (1010), хотя interval имеет значение 20.
При необходимости, функция Partition возвращает значение с добавлением стольких пробелов, чтобы число символов слева и справа от двоеточия было на единицу больше, чем в значении аргумента stop. Это гарантирует корректность последующих операций сортировки.
Если interval равняется 1, возвращаемый диапазон имеет вид number:number, независимо от значений аргументов start и stop. Например, если interval имеет значение 1, number имеет значение 100 и stop имеет значение 1000, функция Partition возвращает строку " 100: 100".
Если любой из аргументов имеет значение Null, возвращается значение Null.
Предположим, что таблица "Заказы" содержит поле "Доставка". Описанный ниже запрос на выборку подсчитывает число заказов, расходы на доставку которых попадают в каждый диапазон. Сначала функция Partition задает границы диапазонов, а затем функция SQL Count подсчитывает число заказов, попадающих в каждый диапазон. В данном примере аргументы функции Partition имеют следующие значения: начало = 0, конец = 500, интервал = 50. Первым диапазоном будет 0:49, и так далее до 500.
SELECT DISTINCTROW Partition([Доставка],0, 500, 50) AS Range,
Count(Заказы.Доставка) AS Count
FROM Заказы
GROUP BY Partition([Доставка],0,500,50);
Функция Pmt
Возвращает значение типа Double, указывающее объем регулярных платежей по займу при фиксированной учетной ставке.
Синтаксис
Pmt(rate, nper, pv[, fv[, type]])
Синтаксис функции Pmt содержит следующие именованные аргументы:
Элемент | Описание |
rate | Обязательный. Выражение типа Double, указывающее учетную ставку за период. Например, при выплате займа на приобретение автомобиля из расчета 10 процентов годовых, ежемесячная ставка составит 0 1/12, т.е. 0,0083. |
nper | Обязательный. Выражение типа Integer, указывающее полное число периодов (выплат) за рассматриваемый срок. Например, если заем на приобретение автомобиля взят на четыре года, число месячных периодов (количество выплат) составит 4 * 12 (48). |
pv | Обязательный. Выражение типа Double, указывающее величину суммы на текущий момент. Например, при займе на покупку автомобиля, сумма займа является текущим значением при расчете будущих платежей. |
fv | Необязательный. Выражение типа Variant, указывающее результат, который должен быть достигнут по завершении выплат. Для займа это, очевидно, нулевое значение (заем должен быть погашен). Если же вы копите деньги на обучение ребенка, а всего накопить следует 50 000 долларов за 18 лет, то результатом является сумма в 50000 долларов. Если этот аргумент опущен, подразумевается значение 0. |
type | Необязательный. Выражение типа Variant, указывающее режим выплат. Значение 0 означает, что платежи вносятся в конце каждого периода, а значение 1, что они вносятся в начале каждого периода. Если этот аргумент опущен, подразумевается значение 0. |
Функция подходит для расчета выплат по закладной (например за дом) или итогов накоплений при ежемесячных банковских взносах.
Аргументы rate и nper должны задаваться в расчете на одну и ту же единицу времени. Например, если ставка rate исчисляется за месяц, то и число периодов (выплат) nper также следует указать в месяцах.
Для всех аргументов выплаченные суммы (депозитные вклады и т.п.) представляются отрицательными значениями; а полученные (дивиденды) положительными.
В данном примере функция Pmt используется для расчета величины ежемесячных выплат по займу за определенный период. В качестве входных значений при расчете используется процентная ставка (APR / 12), полное число выплат (TotPmts), текущий объем займа (PVal), необходимый результат (FVal), а также число, задающее режим выплат (PayType).
Dim Fmt, FVal, PVal, APR, TotPmts, PayType, Payment
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' Режим выплат.
Fmt = "###,###,##0.00" ' Денежный формат.
FVal = 0 ' Для займа обычно 0.
PVal = InputBox("Каков объем займа?")
APR = InputBox("Какова годовая учетная ставка?")
If APR > 1 Then APR = APR / 100 ' Правильная форма.
TotPmts = InputBox("Каково число ежемесячных выплат?")
PayType = MsgBox("Выплаты производятся в конце месяца?", vbYesNo)
If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD
Payment = Pmt(APR / 12, TotPmts, -PVal, FVal, PayType)
MsgBox "Размер взноса составит " & Format(Payment, Fmt) & " в месяц."
Функция PPmt
Возвращает значение типа Double, указывающее часть периодического платежа, приходящуюся на выплату собственно займа. Предполагается, что выплаты делаются регулярно, а сумма выплат и учетная ставка остаются постоянными.
Синтаксис
PPmt(rate, per, nper, pv[, fv[, type]])
Синтаксис функции PPmt содержит следующие именованные аргументы:
Элемент | Описание |
rate | Обязательный. Выражение типа Double, указывающее учетную ставку за период. Например, при выплате займа на приобретение автомобиля из расчета 10 процентов годовых, ежемесячная ставка составит 0 1/12, т.е. 0,0083. |
per | Обязательный. Выражение типа Integer, указывающее число периодов (выплат) в диапазоне от 1 до nper. |
nper | Обязательный. Выражение типа Integer, указывающее полное число периодов (выплат) за рассматриваемый срок. Например, если заем на приобретение автомобиля взят на четыре года, число месячных периодов (количество выплат) составит 4 * 12 (48). |
pv | Обязательный. Выражение типа Double, указывающее величину суммы на текущий момент. Например, при займе на покупку автомобиля, сумма займа является текущим значением при расчете будущих платежей. |
fv | Необязательный. Выражение типа Variant, указывающее результат, который должен быть достигнут по завершении выплат. Для займа это, очевидно, нулевое значение (заем должен быть погашен). Если же вы копите деньги на обучение ребенка, а всего накопить следует 50 000 долларов за 18 лет, то результатом является сумма в 50000 долларов. Если этот аргумент опущен, подразумевается значение 0. |
type | Необязательный. Выражение типа Variant, указывающее режим выплат. Значение 0 означает, что платежи вносятся в конце каждого периода, а значение 1, что они вносятся в начале каждого периода. Если этот аргумент опущен, подразумевается значение 0. |
Функция подходит для расчета выплат по закладной (например за дом) или итогов накоплений при ежемесячных банковских взносах.
Аргументы rate и nper должны задаваться в расчете на одну и ту же единицу времени. Например, если ставка rate исчисляется за месяц, то и число периодов (выплат) nper также следует указать в месяцах.
Для всех аргументов выплаченные суммы (депозитные вклады и т.п.) представляются отрицательными значениями; а полученные (дивиденды) положительными.
В данном примере используется функция PPmt для определения части платежа, приходящейся на выплату собственно займа. Предполагается, что величина регулярного платежа остается постоянной. В качестве входных значений при расчете используется процентная ставка (APR / 12), номер периода (платежа) (Period), число взносов (TotPmts), текущий объем займа (PVal), необходимый результат (FVal), а также число, задающее режим выплат (PayType).
Dim NL, TB, Fmt, FVal, PVal, APR, TotPmts, PayType, Payment, Msg, MakeChart, Period, P, I
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' Режим платежей.
NL = Chr(13) & Chr(10) ' Новая строка.
TB = Chr(9) ' Табуляция.
Fmt = "###,###,##0.00" ' Денежный формат.
FVal = 0 ' Для займа обычно 0.
PVal = InputBox("Каков объем займа?")
APR = InputBox("Какова годовая учетная ставка?")
If APR > 1 Then APR = APR / 100 ' Правильная форма.
TotPmts = InputBox("Каково число ежемесячных выплат?")
PayType = MsgBox("Выплаты производятся в конце месяца?", vbYesNo)
If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD
Payment = Abs(-Pmt(APR / 12, TotPmts, PVal, FVal, PayType))
Msg = "Общий объем платежа составляет " & Format(Payment, Fmt) & ". "
Msg = Msg & "Выдать раскладку по выплате собственно займа "
Msg = Msg & "и процентов?"
MakeChart = MsgBox(Msg, vbYesNo) ' Нужна ли раскладка.
If MakeChart <> vbNo Then
If TotPmts > 12 Then MsgBox "Сведения только за первый год."
Msg = "Месяц Взнос Осн.часть Проценты" & NL
For Period = 1 To TotPmts
If Period > 12 Then Exit For ' Только первые 12.
P = PPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)
P = (Int((P +.005) * 100) / 100) ' Округляет.
I = Payment - P
I = (Int((I +.005) * 100) / 100) ' Округляет проценты.
Msg = Msg & Period & TB & Format(Payment, Fmt)
Msg = Msg & TB & Format(P, Fmt) & TB & Format(I, Fmt) & NL
Next Period
MsgBox Msg ' Выводит таблицу.
End If
Функция PV
Возвращает значение типа Double, указывающее проекцию на текущий момент времени будущей суммы, базирующуюся на регулярных платежах и фиксированной учетной ставке.
Синтаксис
PV(rate, nper, pmt[, fv[, type]])
Синтаксис функции PV содержит следующие именованные аргументы:
Элемент | Описание |
rate | Обязательный. Выражение типа Double, указывающее учетную ставку за период. Например, при выплате займа на приобретение автомобиля из расчета 10 процентов годовых, ежемесячная ставка составит 0 1/12, т.е. 0,0083. |
nper | Обязательный. Выражение типа Integer, указывающее полное число периодов (выплат) за рассматриваемый срок. Например, если заем на приобретение автомобиля взят на четыре года, число месячных периодов (количество выплат) составит 4 * 12 (48). |
pmt | Обязательный. Выражение типа Double, указывающее размер выплат за период. Каждый платеж включает как собственно возвращаемую сумму, так и проценты, которые не изменяются от одного платежа к другому. |
fv | Необязательный. Выражение типа Variant, указывающее результат, который должен быть достигнут по завершении выплат. Для займа это, очевидно, нулевое значение (заем должен быть погашен). Если же вы копите деньги на обучение ребенка, а всего накопить следует 50 000 долларов за 18 лет, то результатом является сумма в 50000 долларов. Если этот аргумент опущен, подразумевается значение 0. |
type | Необязательный. Выражение типа Variant, указывающее режим выплат. Значение 0 означает, что платежи вносятся в конце каждого периода, а значение 1, что они вносятся в начале каждого периода. Если этот аргумент опущен, подразумевается значение 0. |
Функция подходит для расчета выплат по закладной (например за дом) или итогов накоплений при ежемесячных банковских взносах.
Аргументы rate и nper должны задаваться в расчете на одну и ту же единицу времени. Например, если ставка rate исчисляется за месяц, то и число периодов (выплат) nper также следует указать в месяцах.
Для всех аргументов выплаченные суммы (депозитные вклады и т.п.) представляются отрицательными значениями; а полученные (дивиденды) положительными.
В данном примере используется функция PV для вычисления проекции суммы в 1 000 000, которая изымается по частям (по 50 000 ежегодно) в течение 20 лет. В качестве входных значений при расчете используется оценочная процентная ставка (APR), число платежей (TotPmts), размер снятой суммы (YrIncome), полная итоговая сумма (FVal), а также число, задающее режим выплат (
PayType). Так как снятая сумма YrIncome собой изъятые деньги, ей приписывается отрицательный знак.
Dim Fmt, APR, TotPmts, YrIncome, FVal, PayType, PVal
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' Режим платежей.
Fmt = "###,##0.00" ' Денежный формат.
APR =.0825 ' Процентная ставка за год.
TotPmts = 20 ' Полное число платежей.
YrIncome = 50000 ' Снимается за год.
FVal = 1000000 ' Результат.
PayType = BEGINPERIOD ' Выплаты в начале месяца.
PVal = PV(APR, TotPmts, -YrIncome, FVal, PayType)
MsgBox "Проекция составляет " & Format(PVal, Fmt) & "."
Функция QBColor
Возвращает значение типа Long, представляющее код цвета в модели RGB, соответствующий указанному номеру цвета.
Синтаксис
QBColor(цвет)
Обязательный аргумент цвет задается целым числом в диапазоне от 0 до 15.
Ниже перечислены допустимые значения аргумента цвет:
Номер | Цвет | Номер | Цвет |
Черный | Светло-серый | ||
Темно-синий | Синий | ||
Темно-зеленый | Зеленый | ||
Бирюзовый | Голубой | ||
Малиновый | Красный | ||
Сиреневый | Розовый | ||
Оливковый | Желтый | ||
Темно-серый | Белый |
Аргумент цвет описывает номера цветов, используемые другими версиями Basic (например, Microsoft Visual Basic для MS-DOS и Basic Compiler). Начиная с наименее значимого байта, возвращаемое значение содержит величины красного, зеленого и синего компонентов, описывающих соответствующий цвет в системе, RGB, используемой Visual Basic для приложений.
В данном примере функция QBColor используется для изменения цвета фона (свойства BackColor) формы MyForm на цвет, указанный аргументом ColorCode. Допустимыми аргументами функции QBColor являются целые числа от 0 до 15.
Sub ChangeBackColor (ColorCode As Integer, MyForm As Form)
MyForm.BackColor = QBColor(ColorCode)
End Sub
Функция Rate
Возвращает значение типа Double, указывающее процентную ставку, необходимую для получения указанной суммы за определенный срок путем регулярных взносов.
Синтаксис
Rate(nper, pmt, pv[, fv[, type[, guess]]])
Синтаксис функции Rate содержит следующие именованные аргументы:
Элемент | Описание |
nper | Обязательный. Выражение типа Double, указывающее полное число периодов (выплат) за рассматриваемый срок. Например, если заем на приобретение автомобиля взят на четыре года, число месячных периодов (количество выплат) составит 4 * 12 (48). |
Pmt | Обязательный. Выражение типа Double, указывающее размер выплат за период. Каждый платеж включает как собственно возвращаемую сумму, так и проценты, которые не изменяются от одного платежа к другому. |
pv | Обязательный. Выражение типа Double, указывающее величину суммы на текущий момент. Например, при займе на покупку автомобиля, сумма займа является текущим значением при расчете будущих платежей. |
fv | Необязательный. Выражение типа Variant, указывающее результат, который должен быть достигнут по завершении выплат. Для займа это, очевидно, нулевое значение (заем должен быть погашен). Если же вы копите деньги на обучение ребенка, а всего накопить следует 50 000 долларов за 18 лет, то результатом является сумма в 50000 долларов. Если этот аргумент опущен, подразумевается значение 0. |
type | Необязательный. Выражение типа Variant, указывающее режим выплат. Значение 0 означает, что платежи вносятся в конце каждого периода, а значение 1, что они вносятся в начале каждого периода. Если этот аргумент опущен, подразумевается значение 0. |
guess | Необязательный. Выражение типа Variant, содержащее оценку значения, возвращенного функцией Rate. Если этот аргумент опущен, используется значение по умолчанию 0.1 (10 процентов). |
Функция подходит для расчета выплат по закладной (например за дом) или итогов накоплений при ежемесячных банковских взносах.
Для всех аргументов выплаченные суммы (депозитные вклады и т.п.) представляются отрицательными значениями; а полученные (дивиденды) положительными.
Значение функции Rate определяется итерационным путем. В качестве начального значения используется аргумент guess. Итерации завершаются по достижении точности в 0,00001 процента. Если после 20 итераций результат получить не удается, функция Rate завершает итерационный цикл. В этом случае целесообразно использовать другое начальное значение аргумента guess.
В данном примере используется функция Rate для расчета ставки по займу. В качестве входных значений при расчете используется число взносов (TotPmts), размер взноса (Payment), текущий объем займа (PVal), результирующий объем займа (FVal), число, задающее режим выплат (PayType), а также оценка величины ставки (Guess).
Dim Fmt, FVal, Guess, PVal, Payment, TotPmts, PayType, APR
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' Режим выплат.
Fmt = "##0.00" ' Процентный формат.
FVal = 0 ' Для займа обычно 0.
Guess =.1 ' Начинает с 10 процентов.
PVal = InputBox("Каков объем займа?")
Payment = InputBox("Какова величина ежемесячного взноса?")