次の方法で共有


SYD 関数

指定した期間の級数法による減価償却費を示す倍精度浮動小数点型 (Double) の値を返します。

構文

SYD(cost, salvage, life, period)

SYD 関数には、次の名前付き引数があります。

指定項目 説明
cost 必須。 資産を購入した時点での価格を指定する Double
salvage 必須。 耐用期間が終了した時点での資産の価格を指定する Double
life 必須。 資産の耐用期間を指定する Double
period 必須。 資産の減価償却費を計算する期間を指定する Double

解説

有効期間期間の引数は、同じ単位で表す必要があります。 たとえば、 life を月数で指定した場合は、 period も月数で指定する必要があります。 すべての引数は正の値で指定してください。

この例では、SYD 関数を使用して、資産の初期コスト ()、資産の耐用年数の終わりのサルベージ値 (InitCost)、および資産の合計有効期間 (SalvageVal) を指定した期間の資産の減価償却費を返します。LifeTime 減価償却が計算される年単位の期間は です PDepr

Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, PDepr
Const YEARMONTHS = 12    ' Number of months in a year.
Fmt = "###,##0.00"    ' Define money format.
InitCost = InputBox("What's the initial cost of the asset?")
SalvageVal = InputBox("What's the asset's value at the end of its life?")
MonthLife = InputBox("What's the asset's useful life in months?")
Do While MonthLife < YEARMONTHS    ' 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 / YEARMONTHS    ' Convert months to years.
If LifeTime <> Int(MonthLife / YEARMONTHS) Then
    LifeTime = Int(LifeTime + 1)    ' Round up to nearest year.
End If 
DepYear = CInt(InputBox("For which year do you want depreciation?"))
Do While DepYear < 1 Or DepYear > LifeTime
    MsgBox "You must enter at least 1 but not more than " & LifeTime
    DepYear = CInt(InputBox("For what year do you want depreciation?"))
Loop
PDepr = SYD(InitCost, SalvageVal, LifeTime, DepYear)
MsgBox "The depreciation for year " & DepYear & " is " & Format(PDepr, Fmt) & "."

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。