NPV 関数
更新 : 2007 年 11 月
倍精度浮動小数点数型 (Double) の値を返します。一連の定期的なキャッシュ フロー (支払いと収益) と割引率に基づいて、投資の正味現在価値を返します。
Function NPV( _
ByVal Rate As Double, _
ByRef ValueArray() As Double _
) As Double
パラメータ
Rate
必ず指定します。投資期間を通じて一定の割引率を、Double 型の 10 進数で指定します。ValueArray
必ず指定します。キャッシュ フローの値を倍精度浮動小数点数型 (Double) の配列として指定します。配列には、負の値 (支払額) と正の値 (収益額) が少なくとも 1 つずつ含まれている必要があります。
例外
例外の種類 |
エラー番号 |
条件 |
---|---|---|
ValueArray が Nothing か ValueArray のランクが <> 1、または Rate = -1 です。 |
非構造化エラー処理を使用する Visual Basic 6.0 アプリケーションをアップグレードする場合は、"エラー番号" の列を参照してください(エラー番号を Number プロパティ (Err オブジェクト) と比較することもできます)。ただし、可能であれば、このようなエラー制御は Visual Basic の構造化例外処理の概要 に置き換えることを検討してください。
解説
投資の正味現在価値とは、将来行われる一連の支払いと収益を現時点での現金価値に換算したものです。
NPV 関数では、配列で指定した値の順序がキャッシュ フローの順序であると見なされます。支払額と収益額を入力するときは、その順序に注意してください。
NPV 関数では、投資は配列の最初のキャッシュ フローの日付よりも 1 期前に開始され、配列の最後のキャッシュ フローで終了します。
正味現在価値は、将来のキャッシュ フローを基にして計算されます。最初のキャッシュ フローが第 1 期の期首に発生する場合、その最初の値は引数 ValueArray のキャッシュ フローの値に含めず、NPV 関数の計算結果に加算する必要があります。
NPV 関数は投資の現在価値を返す PV 関数によく似ていますが、NPV 関数と PV 関数の違いは、PV 関数ではキャッシュ フローが期首と期末のどちらで発生してもよい点にあります。また、NPV 関数ではキャッシュ フローの金額が一定していませんが、PV 関数では投資期間を通じて一定である必要があります。
使用例
NPV 関数を使用して、values() 配列に格納された一連のキャッシュ フローの正味現在価値を返す例は、以下のようになります。戻り値は FixedRetRate に格納されます。この値は固定内部利益率を表します。
' 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 NPV function to calculate the net present value.
' Set fixed internal rate.
Dim FixedRetRate As Double = 0.0625
' Calculate net present value.
Dim NetPVal As Double = NPV(FixedRetRate, values)
' Display net present value.
MsgBox("The net present value of these cash flows is " & _
Format(NetPVal, MoneyFmt) & ".")
必要条件
名前空間 : Microsoft.VisualBasic
モジュール : Financial
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)