Share via


Financial.Rate(Double, Double, Double, Double, DueDate, Double) メソッド

定義

投資期間を通じての利率を指定する値を返します。

public static double Rate (double NPer, double Pmt, double PV, double FV = 0, Microsoft.VisualBasic.DueDate Due = Microsoft.VisualBasic.DueDate.EndOfPeriod, double Guess = 0.1);
static member Rate : double * double * double * double * Microsoft.VisualBasic.DueDate * double -> double
Public Function Rate (NPer As Double, Pmt As Double, PV As Double, Optional FV As Double = 0, Optional Due As DueDate = Microsoft.VisualBasic.DueDate.EndOfPeriod, Optional Guess As Double = 0.1) As Double

パラメーター

NPer
Double

必須です。 投資期間全体での支払い回数の合計です。 たとえば、4 年間、月々分割払い自動車ローンを利用した場合、合計で 4 × 12 (= 48) の返済期間があることになります。

Pmt
Double

必須です。 毎回の支払い額です。 通常、支払い額には元金と利息が含まれます。支払い額を投資期間内に変更することはできません。

PV
Double

必須です。 現在の投資額、つまり将来行われる一連の支払いや受け取りを現時点で一括した場合の合計金額です。 たとえば、自動車を購入するために資金を借り入れた場合、ローン金額は、毎月の返済の対象となる貸手にとっての現在価値を表します。

FV
Double

省略可能。 投資の将来価値、つまり最後の支払いを行った後に残る現金の収支です。 たとえば、ローンの将来価値は 0 です。最終支払い後の価値であるためです。 ただし、子供の教育費のため、18 年間かけて 50 万円を貯金する場合、この 50 万円は将来価値になります。 省略した場合は、0 と見なされます。

Due
DueDate

省略可能。 支払い期日を示すオブジェクト型 DueDate の値。 各期の期末に支払う場合は DueDate.EndOfPeriod を、各期の期首に支払う場合は DueDate.BegOfPeriod をそれぞれ引数に指定します。 省略した場合は、DueDate.EndOfPeriod と想定されます。

Guess
Double

省略可能。 Rate によって返される推定値です。 省略した場合、Guess に 0.1 (10%) を指定したものと見なされます。

戻り値

投資期間を通じての利率です。

例外

NPer<= 0 です。

この例では、 関数をRate使用して、支払いの合計数 ()、ローンの支払額 (TotPmts)、ローンの現在価値または元金 (Payment)、ローンの将来価値 (PValFVal)、支払い期間の開始時または終了時に支払い期限を示す数値 (PayType) を指定して、ローンの利率を計算します。 予想金利の近似値 (Guess)。

Sub TestRate()
    Dim PVal, Payment, TotPmts, APR As Double
    Dim PayType As DueDate

    ' Define percentage format.
    Dim Fmt As String = "##0.00"
    Dim Response As MsgBoxResult
    ' Usually 0 for a loan.
    Dim FVal As Double = 0
    ' Guess of 10 percent.
    Dim Guess As Double = 0.1
    PVal = CDbl(InputBox("How much did you borrow?"))
    Payment = CDbl(InputBox("What's your monthly payment?"))
    TotPmts = CDbl(InputBox("How many monthly payments do you have to make?"))
    Response = MsgBox("Do you make payments at the end of the month?", MsgBoxStyle.YesNo)
    If Response = MsgBoxResult.No Then
        PayType = DueDate.BegOfPeriod
    Else
        PayType = DueDate.EndOfPeriod
    End If
    APR = (Rate(TotPmts, -Payment, PVal, FVal, PayType, Guess) * 12) * 100

    MsgBox("Your interest rate is " & Format(CInt(APR), Fmt) & " percent.")
End Sub

注釈

年金とは、一定期間に行われた一連の固定現金支払いです。 年金は、ローン (住宅ローンなど) または投資 (毎月の節約プランなど) です。

すべての引数について、支払われた現金 (預金から預貯金など) は負の数で表されます。受け取った現金 (配当チェックなど) は正の数値で表されます。

Rate はイテレーションによって計算されます。 の値GuessRateから始めて、結果が 0.00001% 以内に正確になるまで計算を繰り返します。 20 回試行した後に結果が見つからない場合 Rate は失敗します。 推測が 10% Rate で失敗した場合は、 に別 Guessの値を試してください。

適用対象

こちらもご覧ください