Online Reference

Home

Microsoft Reference
Knowledge Developer Database Internet Resource Forum
VBA
Financial Function
ดาวน์โหลดคู่มือ

SYD Function

VBA Function, ส่งออกค่าเป็นประเภทข้อมูล Double ของค่าเสื่อมราคาในทรัพย์สินแบบ straight-line

ไวยากรณ์

SYD(cost, salvage, life, period )

อากิวเมนต์ของฟังก์ชัน SYD มีความหมาย คือ

ส่วน รายละเอียด
cost บังคับ, เป็นประเภทข้อมูล Double, ระบุต้นทุนเริ่มต้น
salvage บังคับ, เป็นประเภทข้อมูล Double, ระบุราคาซากเมื่อสิ้นสุดอายุใช้งาน
life บังคับ, เป็นประเภทข้อมูล Double, อายุการใช้งานในการคำนวณ
period บังคับ, เป็นประเภทข้อมูล Double, ระบุจำนวนงวดในการคำนวณค่าเสื่อมราคา

ลักษณะการประยุกต์

อากิวเมนต์ life และ period ต้องใช้หน่วยเดียวกัน เช่น ถ้า life กำหนดเป็นเดือน period ต้องใช้หน่วยเป็นเดือนด้วย อากิวเมนต์ทั้งหมดต้องเป็นค่าบวก

ดูเพิ่มเติม

ฟังก์ชัน DDB, ฟังก์ชัน FV, ฟังก์ชัน IPMT, ฟังก์ชัน IRR, ฟังก์ชัน MIRR, ฟังก์ชัน NPer, ฟังก์ชัน NPV, ฟังก์ชัน Pmt, ฟังก์ชัน PPmt, ฟังก์ชัน PV, ฟังก์ชัน Rate, ฟังก์ชัน SLN

ตัวอย่าง

ตัวอย่างการใช้ฟังก์ชัน SYD เพื่อส่งออกค่าเสื่อมราคาของสินทรัพย์ในงวดที่ระบุ โดยให้ค่าต้นทุนเริ่มต้น (InitCost) ราคาซากที่งวดสุดท้าย (SalvageVal) อายุการใช้งานของทรัพย์สินเป็นปี (LifeTime) ให้คำนวณงวดที่ต้องการทราบค่าเสื่อมราคา (PDepr)

Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, PDepr

' จำนวนเดือนใน 1 ปี
Const YEARMONTHS = 12

' กำหนดรูปแบบการเงิน
Fmt = "###,##0.00"
InitCost = InputBox("What's the initial cost of the asset?")
SalvageVal = InputBox("What's the asset's value at the end of its useful life?")
MonthLife = InputBox("What's the asset's useful life in months?")

' Ensure period is >= 1 year.
Do While MonthLife < YEARMONTHS
  MsgBox "Asset life must be a year or more."
  MonthLife = InputBox("What's the asset's useful life in months?")
Loop

' แปลงเดือนเป็นปี
LifeTime = MonthLife / YEARMONTHS

If LifeTime <> Int(MonthLife / YEARMONTHS) Then
  ' ปรับค่าขึ้นเป็นปีที่ใกล้ที่สุด
  LifeTime = Int(LifeTime + 1)
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) & "."