Share via


Funzione Pmt

Aggiornamento: novembre 2007

Restituisce un valore Double in cui è specificato il pagamento di una rendita basata su pagamenti periodici costanti e su un tasso di interesse fisso.

Function Pmt( _
   ByVal Rate 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.

  • 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 × 12 = 48.

  • PV
    Obbligatorio. Valore Double che specifica il valore attuale o forfettario di una serie di pagamenti da effettuare in futuro. 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

NPer = 0.

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 calcolo. Se, ad esempio, Rate viene calcolato su base mensile, anche NPer dovrà essere espresso 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 Pmt viene utilizzata per restituire la rata mensile per un prestito in un determinato periodo di tempo. Vengono specificati il tasso di interesse per periodo (APR / 12), 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 TestPMT()
    Dim PVal, APR, Payment, TotPmts As Double
    Dim PayType As DueDate
    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?"))
    If APR > 1 Then APR = APR / 100 ' Ensure proper form.
    TotPmts = CDbl(InputBox("How many monthly payments will you 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 = Pmt(APR / 12, TotPmts, -PVal, FVal, PayType)

    MsgBox("Your payment will be " & Format(Payment, Fmt) & " per month.")
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