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 のサポートおよびフィードバックを参照してください。