Função PPmt
Retorna um Double especificando o pagamento principal para um dado período de uma anuidade baseada em pagamentos periódicos fixos e taxa fixa de juros.
Function PPmt( _
ByVal Rate As Double, _
ByVal Per As Double, _
ByVal NPer As Double, _
ByVal PV As Double, _
Optional ByVal FV As Double = 0, _
Optional ByVal Due As DueDate = DueDate.EndOfPeriod _
) As Double
Parâmetros
Rate
Obrigatório.Double Especifica a taxa de juros por período. Por exemplo, se você obtiver um empréstimo de carro com uma taxa percentual anual (APR) de 10 % e fizer pagamentos mensais, a taxa por período é 0,1 / 12, ou 0,0083.Per
Obrigatório.Double Especifica o período de pagamento no intervalo 1 através de NPer.NPer
Obrigatório.Double Especifica o número total de períodos de pagamento da anuidade. Por exemplo, se você fizer pagamentos mensais por um empréstimo de carro de quatro anos, o empréstimo terá um total de 4 x 12 (ou 48) períodos de pagamento.PV
Obrigatório.Double Especifica o valor corrente de uma série de futuros pagamentos ou recebimentos. Por exemplo, quando você pedir dinheiro emprestado para comprar um carro, valor do empréstimo é o valor atual para o credor dos pagamentos mensais do carro que você fará.FV
Opcional.Double especificando o valor futuro ou o Equilíbrio em dinheiro desejado após você ter feito o pagamento final. Por exemplo, o valor futuro de um empréstimo é $0, porque esse será o valor depois do pagamento.Entretanto, se você quiser economizar $50,000 durante 18 anos para a educação de seu filho, então $50,000 é o valor futuro.Se omitido, 0 será adotado.Due
Opcional.Objeto do tipo Enumeração DueDate que especifica quando os pagamentos devem ser feitos.Esse argumento deve ser DueDate.EndOfPeriod se os pagamentos devem ser feitos ao final do período de pagamento, ou DueDate.BegOfPeriod se os pagamentos devem ser feitos no início do período.Se omitido, DueDate.EndOfPeriod será adotado.
Exceções
Tipo de exceção |
Número de erro |
Condição |
---|---|---|
Per<=0 ou Per > NPer. |
Ver a coluna " número de erro " se você estiver atualizando aplicativos Visual Basic 6.0 que usam manipulação de erros não estruturada.(Você pode comparar o número do erro com a Propriedade do Número (Erro de objeto).) Entretanto, quando for possivel, você pode considerar substituir tal controle de erro por Visão Geral sobre a Manipulação Estruturada de Exceções para o Visual Basic.
Comentários
Uma anuidade é uma série de pagamentos fixos em dinheiro feitos em um período de tempo.Uma anuidade pode ser um empréstimo (como uma hipoteca doméstica) ou um investimento (como um plano de economias mensais).
Os argumentos Rate e NPer devem ser calculados utilizando períodos de pagamento expressos nas mesmas unidades.Por exemplo, se Rate for calculado utilizando meses, NPer deve também ser calculado utilizando meses.
Para todos os argumentos, dinheiro gasto (tais como depósitos em poupanças) é representado por números negativos; dinheiro recebido (tais como cheques devedores) é representado por números positivos.
Exemplo
Esse exemplo usa a função PPmt para calcular quanto de um pagamento para um período específico é principal quando todos os pagamentos são de valor igual.Dados a taxa percentual de juros por período APR / 12, o período de pagamento para o qual deseja-se a porção principal Period, o número total de pagamentos TotPmts, o valor atual ou principal do empréstimo PVal, o valor futuro do empréstimo FVal, e o número que indica se o pagamento deve ser feito no início ou no fim de um período de pagamento PayType.
Sub TestPPMT()
Dim PVal, APR, TotPmts, Payment, Period, P, I As Double
Dim PayType As DueDate
Dim Msg As String
Dim Response As MsgBoxResult
' Define money format.
Dim Fmt As String = "###,###,##0.00"
' Usually 0 for a loan.
Dim Fval As Double = 0
PVal = CDbl(InputBox("How much do you want to borrow?"))
APR = CDbl(InputBox("What is the annual percentage rate of your loan?"))
' Ensure proper form.
If APR > 1 Then APR = APR / 100
TotPmts = CDbl(InputBox("How many monthly payments do you have to make?"))
Response = MsgBox("Do you make payments at the end of month?", MsgBoxStyle.YesNo)
If Response = MsgBoxResult.No Then
PayType = DueDate.BegOfPeriod
Else
PayType = DueDate.EndOfPeriod
End If
Payment = Math.Abs(-Pmt(APR / 12, TotPmts, PVal, FVal, PayType))
Msg = "Your monthly payment is " & Format(Payment, Fmt) & ". "
Msg = Msg & "Would you like a breakdown of your principal and "
Msg = Msg & "interest per period?"
' See if chart is desired.
Response = MsgBox(Msg, MsgBoxStyle.YesNo)
If Response <> MsgBoxResult.No Then
If TotPmts > 12 Then MsgBox("Only first year will be shown.")
Msg = "Month Payment Principal Interest" & vbNewLine
For Period = 1 To TotPmts
' Show only first 12.
If Period > 12 Then Exit For
P = PPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)
' Round principal.
P = (Int((P + 0.005) * 100) / 100)
I = Payment - P
' Round interest.
I = (Int((I + 0.005) * 100) / 100)
Msg = Msg & Period & vbTab & Format(Payment, Fmt)
Msg = Msg & vbTab & Format(P, Fmt) & vbTab & Format(I, Fmt) & vbNewLine
Next Period
' Display amortization table.
MsgBox(Msg)
End If
End Sub
Requisitos
Namespace:Microsoft.VisualBasic
**Módulo:**Financial
Assembly: Visual Basic Runtime Library (em Microsoft.VisualBasic.dll)