Функции LTrim, Rtrim и Trim




Возвращают значение типа 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("Какова величина ежемесячного взноса?")

TotPmts = InputBox("Сколько меся<



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: