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,000 を節約する場合は、\$50,000 が将来の価値になります。 省略した場合、0 が想定されます。

Due
DueDate

このフィールドは省略可能です。 支払い期限を指定する DueDate 型のオブジェクト。 この引数は、支払い期間の終了時に支払いが行われる場合は DueDate.EndOfPeriod 、支払い期限が期間の初めに支払われる場合は DueDate.BegOfPeriod する必要があります。 省略すると、 DueDate.EndOfPeriod が想定されます。

Guess
Double

このフィールドは省略可能です。 推定した値は、 Rateによって返されます。 省略すると、 Guess は 0.1 (10%) になります。

返品

年金の期間あたりの利率。

例外

NPer <= 0。

次の使用例は、 Rate 関数を使用して、支払いの総数 (TotPmts)、ローンの支払額 (Payment)、ローンの現在価値または元金 (PVal)、ローンの将来価値 (FVal)、支払い期間の開始時または終了時に支払いが行われるかどうかを示す数値 (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 はイテレーションによって計算されます。 Guessの値から始めて、Rateは、結果が 0.00001% 以内に正確になるまで計算を循環します。 Rate 20 回試行しても結果が見つからない場合は失敗します。 推定値が 10% で失敗 Rate 場合は、 Guess別の値を試してください。

適用対象

こちらもご覧ください