Share via


Funzione PPmt

Aggiornamento: novembre 2007

Restituisce un valore Double che specifica il valore del capitale per un periodo specifico di una rendita basata su pagamenti periodici costanti e su un tasso di interesse fisso.

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

Parametri

  • Rate
    Obbligatorio. Valore Double che specifica il tasso di interesse per periodo. Nel caso di un prestito con tasso di interesse annuo del 10% da restituire con rate mensili, il tasso per periodo sarà 0,1/12 ovvero 0,0083.

  • Per
    Obbligatorio. Valore Double che specifica il periodo di pagamento nell'intervallo compreso tra 1 e NPer.

  • NPer
    Obbligatorio. Valore Double che specifica il numero totale di periodi di pagamento della rendita. Nel caso di un prestito di durata complessiva di 4 anni da restituire con rate mensili, il numero totale dei periodi di pagamento sarà 4 x 12 = 48.

  • PV
    Obbligatorio. Valore Double che specifica il valore corrente di una serie di entrate o uscite future. L'importo di un prestito corrisponde al valore attuale delle rate mensili che verranno pagate.

  • FV
    Facoltativo. Valore Double che specifica il valore futuro o il saldo in contanti richiesto dopo il pagamento finale. Nel caso di un prestito, il valore futuro sarà 0, a indicare che tutti i pagamenti sono stati effettuati. Nel caso di un programma di risparmio, il valore futuro corrisponderà all'importo che si è deciso di accantonare per il periodo specificato. Se l'argomento viene omesso, verrà utilizzato il valore 0.

  • Due
    Facoltativo. Oggetto di tipo Enumerazione DueDate in cui viene indicata la scadenza delle rate. Utilizzare DueDate.EndOfPeriod se le rate sono in scadenza al termine del periodo, DueDate.BegOfPeriod se le rate sono in scadenza all'inizio del periodo. Se l'argomento viene omesso, verrà utilizzato il valore DueDate.EndOfPeriod.

Eccezioni

Tipo di eccezione

Numero di errore

Condizione

ArgumentException

5

Per <=0 o Per > NPer.

Se si esegue l'aggiornamento delle applicazioni Visual Basic 6.0 che utilizzano la gestione degli errori non strutturata, vedere la colonna "Numero di errore". È possibile confrontare il numero di errore con la Proprietà Number (oggetto Err). Se possibile, tuttavia, si consiglia di sostituire il controllo dell'errore con la procedura illustrata nella sezione Cenni preliminari sulla gestione strutturata delle eccezioni per Visual Basic.

Note

Una rendita consiste in una serie di pagamenti costanti effettuati in un determinato periodo di tempo. Può trattarsi di un prestito, ad esempio un mutuo fondiario, oppure di un investimento, ad esempio un programma di risparmio mensile.

Gli argomenti Rate e NPer devono essere calcolati utilizzando periodi di pagamento espressi nelle stesse unità di misura. Se ad esempio Rate viene calcolato su base mensile, anche NPer dovrà essere calcolato in mesi.

Per tutti gli argomenti, le uscite (ad esempio i depositi per risparmi) vengono indicate con numeri negativi e le entrate (ad esempio gli interessi attivi) con numeri positivi.

Esempio

Nell'esempio riportato di seguito la funzione PPmt viene utilizzata per calcolare il valore del capitale incluso in un pagamento per un periodo specifico quando tutti i pagamenti sono di pari importo. Vengono specificati il tasso di interesse per periodo (APR / 12), il periodo di pagamento per cui si desidera determinare la quota di capitale (Period), il numero totale di rate (TotPmts), il valore attuale o il capitale del prestito (PVal), il valore futuro del prestito (FVal) e un numero che indica se le rate sono in scadenza all'inizio o al termine del periodo (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

Requisiti

Spazio dei nomi:Microsoft.VisualBasic

**Modulo:**Financial

**Assembly:**Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)

Vedere anche

Riferimenti

Riepilogo degli elementi finanziari

ArgumentException