DDB 関数
倍額定率法や、ユーザーが指定した他の方法を使用して、特定の期における資産の減価償却費を指定する Double を返します。
構文
DDB(cost, salvage, life, period, [ factor ])
DDB 関数には、次の名前付き引数があります。
指定項目 | 説明 |
---|---|
cost | 必須。 資産の初期コストを指定する Double です。 |
salvage | 必須。 耐用期間が終了した時点での資産の価格を指定する Double です。 |
life | 必須。 資産の耐用期間を指定する Double です。 |
period | 必須。 資産の減価償却費を計算する期を指定する Double です。 |
factor | 省略可能。 減価償却率を指定する Variant です。 省略すると、2 (倍額定率法) を指定したと見なされます。 |
解説
倍額定率法では、減価償却費が加速的に計算されます。 減価償却費は、最初の期が最も多く、その後の期では急速に減少します。
有効期間と期間の引数は、同じ単位で表す必要があります。 たとえば、 life を月数で指定した場合は、 period も月数で指定する必要があります。 すべての引数は、必ず正の数で指定してください。
DDB 関数では、次の数式を使用して、指定した期の減価償却費を計算します。
価償却費/period = ((cost - salvage) * factor) / life
例
この例では、DDB 関数を使用して、指定した期における資産の減価償却費を返します。指定する項目は、初期コスト (InitCost
)、資産の耐用期間が終了した時点での残存価額 (SalvageVal
)、資産の耐用年数 (LifeTime
)、および減価償却費を計算する年単位の期 (Depr
) です。
Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, Depr
Const YRMOS = 12 ' Number of months in a year.
Fmt = "###,##0.00"
InitCost = InputBox("What's the initial cost of the asset?")
SalvageVal = InputBox("Enter the asset's value at end of its life.")
MonthLife = InputBox("What's the asset's useful life in months?")
Do While MonthLife < YRMOS ' Ensure period is >= 1 year.
MsgBox "Asset life must be a year or more."
MonthLife = InputBox("What's the asset's useful life in months?")
Loop
LifeTime = MonthLife / YRMOS ' Convert months to years.
If LifeTime <> Int(MonthLife / YRMOS) Then
LifeTime = Int(LifeTime + 1) ' Round up to nearest year.
End If
DepYear = CInt(InputBox("Enter year for depreciation calculation."))
Do While DepYear < 1 Or DepYear > LifeTime
MsgBox "You must enter at least 1 but not more than " & LifeTime
DepYear = InputBox("Enter year for depreciation calculation.")
Loop
Depr = DDB(InitCost, SalvageVal, LifeTime, DepYear)
MsgBox "The depreciation for year " & DepYear & " is " & _
Format(Depr, Fmt) & "."
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。