DDB 関数
更新 : 2007 年 11 月
倍精度浮動小数点数型 (Double) の値を返します。倍率法などの指定した方法を使って特定の期における資産の減価償却費を返します。
Function DDB( _
ByVal Cost As Double, _
ByVal Salvage As Double, _
ByVal Life As Double, _
ByVal Period As Double, _
Optional ByVal Factor As Double = 2.0 _
) As Double
パラメータ
Cost
必ず指定します。資産を購入した時点での価格を示す倍精度浮動小数点数型 (Double) の値を指定します。Salvage
必ず指定します。耐用年数が終了した時点での資産の価格を示す倍精度浮動小数点数型 (Double) の値を指定します。Life
必ず指定します。資産の耐用年数を示す倍精度浮動小数点数型 (Double) の値を指定します。Period
必ず指定します。減価償却費を計算する期を示す倍精度浮動小数点数型 (Double) の値を指定します。Factor
省略可能です。減価償却率を示す倍精度浮動小数点数型 (Double) の値を指定します。引数 factor を省略すると、2 が指定されたものと見なされ、倍率逓減法で計算されます。
例外
例外の種類 |
エラー番号 |
条件 |
---|---|---|
Factor <= 0、Salvage < 0、Period <= 0、または Period > Life. |
非構造化エラー処理を使用する Visual Basic 6.0 アプリケーションをアップグレードする場合は、「エラー番号」列を参照してください(エラー番号を Number プロパティ (Err オブジェクト) と照らし合わせます)。しかし、可能な限り、このエラー処理は Visual Basic の構造化例外処理の概要 で置き換えてください。
解説
倍率法では、指定した償却率で減価償却費が計算されます。減価償却費は最初の期が最も高く、その後の期では減少していきます。
引数 Life および Period は、同じ単位で指定する必要があります。たとえば、Life が月単位で指定されている場合は、Period も月単位で指定する必要があります。すべての引数には必ず正の値を指定してください。
DDB 関数を使って指定した期に対する減価償却費を求めるには、次の式を使います。
Depreciation / Period = ((Cost – Salvage) * Factor) / Life
使用例
次の例は、DDB 関数を使って、指定した期の資産の減価償却費を返します。資産購入時点の価格 (InitCost)、資産の耐用年数を経た後での残存価額 (SalvageVal)、資産の耐用年数 (LifeTime)、減価償却費を計算する年 (Depr) を指定します。
Dim InitCost, SalvageVal, LifeTime, DepYear As Double
Dim Fmt As String = "###,##0.00"
InitCost = CDbl(InputBox("What's the initial cost of the asset?"))
SalvageVal = CDbl(InputBox("Enter the asset's value at end of its life."))
LifeTime = CDbl(InputBox("What's the asset's useful life in years?"))
' Use the SLN function to calculate the deprecation per year.
Dim SlnDepr As Double = SLN(InitCost, SalvageVal, LifeTime)
Dim msg As String = "The depreciation per year: " & Format(SlnDepr, Fmt)
msg &= vbCrLf & "Year" & vbTab & "Linear" & vbTab & "Doubling" & vbCrLf
' Use the SYD and DDB functions to calculate the deprecation for each year.
For DepYear = 1 To LifeTime
msg &= DepYear & vbTab & _
Format(SYD(InitCost, SalvageVal, LifeTime, DepYear), Fmt) & vbTab & _
Format(DDB(InitCost, SalvageVal, LifeTime, DepYear), Fmt) & vbCrLf
Next
MsgBox(msg)
必要条件
名前空間 : Microsoft.VisualBasic
モジュール : Financial
**アセンブリ :**Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)