PPmt 함수
업데이트: 2007년 11월
일정 기간의 고정 지불액과 고정 이자율을 기준으로 일정 기간의 연금에 대한 원금 지불액을 Double 형식으로 반환합니다.
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
매개 변수
Rate
필수적 요소. 기간당 이자율을 지정하는 Double 형식입니다. 예를 들어, 연리(APR) 10%로 자동차 대출을 받아 매달 지불한다면 기간당 이자율은 0.1/12 또는 0.0083입니다.Per
필수적 요소. 1부터 NPer까지 범위의 지불 기간을 지정하는 Double 형식입니다.NPer
필수적 요소. 연금의 총 지불 기간 수를 지정하는 Double 형식입니다. 예를 들어, 4년짜리 자동차 대출을 받아 매달 지불한다면 총 대출 상환 기간은 4 × 12, 즉 48입니다.PV
필수적 요소. 미래 지불 또는 수령액의 현재 가치를 지정하는 Double 형식입니다. 예를 들어, 차를 사려고 돈을 빌린 경우 대출 원리 합계는 돈을 빌려 준 사람에게 앞으로 매달 지불할 차 대금의 현재 값입니다.FV
선택적 요소. 최종 지불 후 앞으로 지불할 미래 값 또는 현금 잔액을 지정하는 Double 형식입니다. 예를 들어, 최종 지불 후의 대출 값은 $0이므로 대출의 미래 값은 $0입니다. 그러나 자녀 교육을 위해 18년간 $50,000 를 저축하는 경우 미래 값은 $50,000입니다. 생략하면 0로 간주됩니다.Due
선택적 요소. 지불 만기일을 지정하는 DueDate 열거형 형식의 개체입니다. 지불일로 처리되는 날짜가 지불 기간의 끝이면 이 인수는 DueDate.EndOfPeriod이고, 지불 기간의 처음이면 DueDate.BegOfPeriod여야 합니다. 생략하면 DueDate.EndOfPeriod로 간주됩니다.
예외
예외 형식 |
오류 번호 |
조건 |
---|---|---|
Per가 0보다 작거나 같거나, Per가 NPer보다 작습니다. |
비구조적 오류 처리를 사용하는 Visual Basic 6.0 응용 프로그램을 업그레이드하는 경우에는 "오류 번호" 열을 참조하십시오. 오류 번호를 Number 속성(Err 개체)과 비교할 수 있습니다. 그러나 가능하면 이러한 오류 제어 방법을 Visual Basic의 구조적 예외 처리 개요에 설명된 방식으로 바꾸는 것이 좋습니다.
설명
연금은 일정 기간 동안 고정된 현금을 지불하는 것입니다. 연금은 대출(예: 집 저당) 또는 투자(예: 매달 저축 계획)가 될 수 있습니다.
Rate 및 NPer 인수는 같은 단위의 지불 기간을 사용하여 계산해야 합니다. 예를 들어, 월 단위로 Rate를 계산하면 NPer도 월 단위로 계산해야 합니다.
모든 인수에서 지불된 현금(예: 저축 예금)은 음수로 표시되고 받은 현금(예: 배당 수표)은 양수로 표시됩니다.
예제
다음 예제에서는 PPmt 함수를 사용하여 동일한 금액으로 대출금을 상환할 경우 특정 기간 동안 원금을 상환할 때의 1회 지불액을 계산합니다. 이 때 기간당 이자율(APR / 12), 이자를 지불할 납부 기간(Period), 총 지불 횟수(TotPmts), 대출금의 현재 가치 또는 대출 원금(PVal), 대출금의 장래 가치(FVal) 및 지불일로 처리되는 날짜가 지불 기간의 시작과 끝 중 언제인지를 나타내는 숫자(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
요구 사항
네임스페이스:Microsoft.VisualBasic
**모듈:**Financial
**어셈블리:**Visual Basic 런타임 라이브러리(Microsoft.VisualBasic.dll)