Share via


IPmt 函式

更新:2007 年 11 月

傳回 Double,指定以定期、固定付款及固定利率為基礎之指定期間的利息支付。

Function IPmt( _
   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
    必要項。Double,指定 1 到 NPer 範圍之間的付款期間。

  • NPer
    這是必要項。Double 指定年金保險投資中付款的總期數。例如,如果您的四年期汽車貸款是採月付方式償還,則付款總期數就是 4 x 12 (即 48) 期。

  • PV
    必要項。Double,指定一系列遠期付款或遠期收入的現值或今天的值。例如,當您貸款買車時,貸款金額就是您要以每月支付方式付給貸方的車款金額現值。

  • FV
    選擇性的。Double 指定在最後一次付款之後,您想要的未來值或現金結存。例如,貸款的未來值為 $0,因為那是它在最後一期付款之後的值。不過,如果您想要在 18 年期間存 50,000 美元做為子女教育費用,那麼 50,000 美元就是這個未來值。如果省略,則假設為 0。

  • Due
    選擇項。DueDate 列舉型別 型別的物件,指定付款何時到期。這個引數必須是 DueDate.EndOfPeriod (若付款期限是付款期間的結束日),或 DueDate.BegOfPeriod (若付款期限是付款期間的開始日)。如果省略,則假設為 DueDate.EndOfPeriod。

例外狀況

例外狀況類型

錯誤代碼

條件

ArgumentException

5

Per <= 0 或 Per > NPer

如果將使用非結構化錯誤處理的 Visual Basic 6.0 應用程式升級,請參閱「錯誤代碼」資料行 (您可以將錯誤代碼與 Number 屬性 (Err 物件) 比對)。但是,請盡可能考慮以 Visual Basic 的結構化例外處理概觀 取代這類錯誤控制項。

備註

年金是在約定期間內一連串的固定現金付款。年金可以是借貸 (例如房屋抵押貸款) 也可以是投資 (例如每月定存存單)。

Rate 和 NPer 引數必須使用以相同單位表示的付款週期計算。例如,如果 Rate 是以月計算,則 NPer 也必須以月來計算。

凡是引數,現金支出 (例如存款) 都以負數來表示,現金收入 (例如股息支票) 則以正數來表示。

範例

這個範例會使用 IPmt 函式計算當所有付款等值時,付款中有多少是利息部分。前提是提供每一期的利率 (APR / 12)、應付利息部分的付款期間 (Period)、付款總數 (TotPmts)、貸款的現值或本金 (PVal)、貸款的未來值 (FVal) 和表示付款時間是在付款期間開頭或結尾的數字 (PayType)。

Sub TestIPMT()
    Dim APR, PVal, Period, IntPmt, TotInt, TotPmts As Double
    Dim PayType As DueDate
    Dim Response As MsgBoxResult

    ' Usually 0 for a loan.
    Dim Fval As Double = 0
    ' Define money format.
    Dim Fmt As String = "###,###,##0.00"
    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 = CInt(InputBox("How many monthly payments?"))
    Response = MsgBox("Do you make payments at end of the month?", MsgBoxStyle.YesNo)
    If Response = MsgBoxResult.No Then
        PayType = DueDate.BegOfPeriod
    Else
        PayType = DueDate.EndOfPeriod
    End If
    For Period = 1 To TotPmts   ' Total all interest.
        IntPmt = IPmt(APR / 12, Period, TotPmts, -PVal, Fval, PayType)
        TotInt = TotInt + IntPmt
    Next Period

    ' Display results.
    MsgBox("You will pay a total of " & Format(TotInt, Fmt) & _
        " in interest for this loan.")
End Sub

需求

命名空間 (Namespace)︰Microsoft.VisualBasic

**模組︰**Financial

組件 (Assembly):Visual Basic Runtime Library (在 Microsoft.VisualBasic.dll 中)

請參閱

參考

財務摘要

ArgumentException