PPmt-Funktion
Aktualisiert: November 2007
Gibt einen Wert vom Typ Double zurück, der die Tilgung für einen bestimmten Zeitraum einer Annuität bei regelmäßigen, konstanten Zahlungen und einem konstanten Zinssatz angibt.
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
Parameter
Rate
Erforderlich. Ein Wert vom Typ Double, der den Zinssatz pro Zeitraum angibt. Wenn Sie beispielsweise einen Kredit für ein Auto mit einem Jahreszins von 10 Prozent aufnehmen und monatliche Zahlungen vereinbart haben, beträgt der Zinssatz pro Zeitraum 0,1 dividiert durch 12 oder 0,0083.Per
Erforderlich. Ein Wert vom Typ Double, der den Zahlungszeitraum im Bereich 1 bis einschließlich NPer angibt.NPer
Erforderlich. Ein Wert vom Typ Double, der die Gesamtanzahl der Zahlungszeiträume für die Annuität angibt. Wenn Sie beispielsweise monatliche Zahlungen für einen Autokredit mit vierjähriger Laufzeit vereinbart haben, beträgt die Summe der Zahlungszeiträume für den Kredit 4 x 12 (oder 48).PV
Erforderlich. Ein Wert vom Typ Double, der den aktuellen Wert einer Reihe zukünftiger Einnahmen oder Ausgaben angibt. Wenn Sie beispielsweise einen Kredit für einen Autokauf aufnehmen, stellt die Kredithöhe für den Kreditgeber den Barwert der von Ihnen zu leistenden monatlichen Zahlungen dar.FV
Optional. Ein Wert vom Typ Double, der den Endwert oder Kontostand angibt, der nach der letzten Zahlung erreicht sein soll. Der Endwert eines Kredits ist z. B. 0 Euro, da dies die Kredithöhe nach der letzten Zahlung ist. Wenn Sie jedoch für die Ausbildung Ihrer Kinder 50.000 Euro in 18 Jahren ansparen möchten, entspricht der Endwert 50.000 Euro. Wird der Wert nicht angegeben, so wird 0 angenommen.Due
Optional. Ein Objekt vom Typ DueDate-Enumeration, das angibt, wann Zahlungen fällig sind. Dieses Argument muss entweder DueDate.EndOfPeriod sein, wenn die Zahlungen am Ende des Zahlungszeitraums fällig sind, oder DueDate.BegOfPeriod, wenn die Zahlungen zu Beginn des Zeitraums fällig sind. Wird der Wert nicht angegeben, so wird DueDate.EndOfPeriod angenommen.
Ausnahmen
Ausnahmetyp |
Fehlernummer |
Bedingung |
---|---|---|
Per <= 0 oder Per > NPer. |
Beachten Sie die Spalte "Fehlernummer", wenn Sie Visual Basic 6.0-Anwendungen aktualisieren, die eine unstrukturierte Fehlerbehandlung verwenden. (Sie können die Fehlernummer mit der Number-Eigenschaft (Err-Objekt) vergleichen.) Wenn möglich, sollten Sie jedoch erwägen, eine solche Fehlersteuerung durch eine Übersicht über die strukturierte Ausnahmebehandlung für Visual Basic zu ersetzen.
Hinweise
Eine Annuität ist eine Reihe von konstanten Barzahlungen über einen bestimmten Zeitraum. Eine Annuität kann ein Kredit sein (z. B. eine Eigenheimhypothek) oder eine Investition (z. B. eine regelmäßige Spareinlage).
Die Argumente Rate und NPer müssen mit Zahlungszeiträumen berechnet werden, die in der gleichen Maßeinheit angegeben sind. Wenn Rate z. B. in Monaten berechnet wird, muss auch NPer in Monaten berechnet werden.
Bei allen Argumenten werden Zahlungsausgänge (z. B. Spareinlagen) durch negative Zahlen dargestellt, Zahlungseingänge (z. B. Dividendenauszahlungen) durch positive Zahlen.
Beispiel
In diesem Beispiel wird mit der PPmt-Funktion bei gleichwertigen Zahlungen der Anteil einer Zahlung über einen bestimmten Zeitraum berechnet, der auf den Darlehensbetrag entfällt. Gegeben sind der Zinssatz pro Zeitraum (APR / 12), der Zahlungszeitraum, für den der Darlehensbetragsanteil berechnet werden soll (Period), die Gesamtzahl der Zahlungen (TotPmts), der gegenwärtige Wert oder Betrag des Darlehens (PVal), der zukünftige Wert des Darlehens (FVal) und eine Zahl, die die Fälligkeit der Zahlung am Anfang oder Ende des Zahlungszeitraums angibt (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
Anforderungen
Namespace:Microsoft.VisualBasic
**Modul:**Financial
**Assembly:**Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)