Online Reference

Home

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

DDB Function

VBA Function, ส่งออกค่าเป็นประเภทข้อมูล Double ของค่าเสื่อมราคาในทรัพย์สินและช่วงเวลาที่ระบุ โดยใช้การคำนวณค่าเสื่อมราคาแบบ double-declining balance หรือวิธีอื่นตามที่กำหนด

ไวยากรณ์

DDB(cost, salvage, life, period [,factor] )

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

ส่วน รายละเอียด
cost บังคับ, เป็นประเภทข้อมูล Double, ระบุต้นทุนเริ่มต้น
salvage บังคับ, เป็นประเภทข้อมูล Double, ระบุราคาซากเมื่อสิ้นสุดอายุใช้งาน
life บังคับ, เป็นประเภทข้อมูล Double, อายุการใช้งานในการคำนวณ
period บังคับ, เป็นประเภทข้อมูล Double, ระบุจำนวนงวดในการคำนวณค่าเสื่อมราคา
factor ไม่บังคับ, เป็นประเภทข้อมูล Variant, ระบุอัตราการลดลง ถ้าไม่กำหนด ใช้ค่า 2 (double declining balance)

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

วิธีการ double-declining balance คำนวณค่าเสื่อมด้วยอัตราเร่ง โดยค่าเสื่อมราคาจะลดลงมากที่สุดในงวดแรกและน้อยลงในงวดต่อๆไป

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

ฟังก์ชัน DDB ใช้สูตรในการคำนวณค่าเสื่อมราคา


ดูเพิ่มเติม

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

ตัวอย่าง

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

Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, Depr
' จำนวนเดือนใน 1 ปี
Const YRMOS = 12

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?")

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

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

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