IRR 関数
更新 : 2007 年 11 月
倍精度浮動小数点数型 (Double) の値を返します。一連の定期的なキャッシュ フロー (支払いと収益) に基づいて、内部利益率を返します。
Function IRR( _
ByRef ValueArray() As Double, _
Optional ByVal Guess As Double = 0.1 _
) As Double
パラメータ
ValueArray
必ず指定します。キャッシュ フローの値を倍精度浮動小数点数型 (Double) の配列として指定します。配列には、負の値 (支払額) と正の値 (収益額) が少なくとも 1 つずつ含まれている必要があります。Guess
省略可能です。IRR 関数によって返される推定値を示すオブジェクト。省略すると、Guess に 0.1 (10%) を指定したものと見なされます。
例外
例外の種類 |
エラー番号 |
条件 |
---|---|---|
配列の引数値が無効、または Guess <= -1 です。 |
非構造化エラー処理を使用する Visual Basic 6.0 アプリケーションをアップグレードする場合は、"エラー番号" の列を参照してください(エラー番号を Number プロパティ (Err オブジェクト) と比較することもできます)。ただし、可能であれば、このようなエラー制御は Visual Basic の構造化例外処理の概要 に置き換えることを検討してください。
解説
内部利益率とは、一定間隔で発生する支払いと収益から成る投資に対する受け取り利率のことです。
IRR 関数では、配列で指定した値の順序がキャッシュ フローの順序であると見なされます。支払額と収益額を入力するときは、その順序に注意してください。各期のキャッシュ フローは、投資のキャッシュ フローのように定額である必要はありません。
IRR 関数は、反復計算の手法を用いて利率を計算します。引数 Guess、IRR の値を初期値とし、計算結果の誤差が 0.00001% 以内になるまで反復計算を行います。IRR が反復計算を 20 回行っても適切な解が見つからない場合は、エラーとなります。
使用例
次の例は、IRR 関数を使って、配列 Values() に指定した 5 つのキャッシュ フローに対する内部利益率を計算します。最初の配列要素は、事業の操業資金を表す負のキャッシュ フローです。他の 4 つの配列要素は、以後 4 年間の収益を表す正のキャッシュ フローです。Guess には、内部利益率の推定値を指定します。
' Define money format.
Dim MoneyFmt As String = "###,##0.00"
' Define percentage format.
Dim PercentFmt As String = "#0.00"
Dim values(4) As Double
' Business start-up costs.
values(0) = -70000
' Positive cash flows reflecting income for four successive years.
values(1) = 22000
values(2) = 25000
values(3) = 28000
values(4) = 31000
' Use the IRR function to calculate the rate of return.
' Guess starts at 10 percent.
Dim Guess As Double = 0.1
' Calculate internal rate.
Dim CalcRetRate As Double = IRR(values, Guess) * 100
' Display internal return rate.
MsgBox("The internal rate of return for these cash flows is " & _
Format(CalcRetRate, CStr(PercentFmt)) & " percent.")
必要条件
名前空間 : Microsoft.VisualBasic
モジュール : Financial
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)