ท่านผู้อ่านที่เคารพทุกท่านครับ/ค่ะ, แน่นอนว่าการเขียนโค้ดแบบเนี้ยบและมีระเบียบวินัยทางความคิดเป็นพื้นฐานสำคัญในวิชาการเขียนโปรแกรม และหนึ่งในคอนเซ็ปต์ที่มีความสำคัญในการสร้างโปรแกรมที่มีคุณภาพคือ Object-Oriented Programming (OOP) ซึ่งมีการใช้งานทั่วไปในภาษาการเขียนโปรแกรมมากมาย รวมทั้งในภาษา VBA (Visual Basic for Applications) ที่เป็นที่นิยมในการเขียนอัตโนมัติสำหรับงานต่างๆ ใน Microsoft Office เช่น Excel, Access และเอกสาร Word
ฟังก์ชัน set และ get นั้น เป็นส่วนสำคัญที่ช่วยให้การเข้าถึงและควบคุมข้อมูลภายในอ็อบเจ็กต์ทำได้สะดวกและปลอดภัยมากยิ่งขึ้น ในมุมมองของ OOP, set คือฟังก์ชันที่ใช้ในการกำหนดค่าให้กับ properties หรือ attributes ของอ็อบเจ็กต์ ในขณะที่ get ใช้สำหรับการอ่านค่าเหล่านั้น
ตัวอย่างที่ 1:
Class Employee
Private pName As String
' Get function
Public Property Get Name() As String
Name = pName
End Property
' Set function
Public Property Let Name(ByVal newName As String)
pName = newName
End Property
End Class
Sub UseCaseExample()
Dim emp As Employee
Set emp = New Employee
emp.Name = "กิตติพงษ์"
MsgBox "ชื่อพนักงานคือ: " & emp.Name
End Sub
ในตัวอย่างนี้, เราสร้าง Class `Employee` ที่มี private attribute `pName` และมีฟังก์ชัน set และ get สำหรับการจัดการ attribute นี้ จากนั้นเราสร้างอ็อบเจ็กต์ `emp` จาก class และกำหนดชื่อให้กับพนักงานโดยใช้ฟังก์ชัน set และแสดงผลโดยใช้ฟังก์ชัน get
ตัวอย่างที่ 2:
Class Product
Private pPrice As Double
Public Property Get Price() As Double
Price = pPrice
End Property
Public Property Let Price(ByVal newPrice As Double)
If newPrice > 0 Then
pPrice = newPrice
Else
pPrice = 0
End If
End Property
End Class
Sub UseCaseExample()
Dim item As Product
Set item = New Product
item.Price = 500
MsgBox "ราคาสินค้า: " & item.Price
End Sub
เราสามารถเพิ่มเงื่อนไขในฟังก์ชัน set โดยตรวจสอบว่าราคาไม่ควรเป็นค่าลบ นี่เป็นตัวอย่างของการยืนยันข้อมูลแบบง่ายๆ ในการกำหนดค่าของอ็อบเจ็กต์ในโลกจริง
ตัวอย่างที่ 3:
Class Account
Private pBalance As Double
Public Property Get Balance() As Double
Balance = pBalance
End Property
Public Property Let Balance(ByVal Amount As Double)
If Amount >= 0 Then
pBalance = Amount
Else
MsgBox "ไม่สามารรถจัดการจำนวนเงินที่ติดลบได้."
End If
End Prop
Sub UseCaseRealWorld()
Dim acc As Account
Set acc = New Account
acc.Balance = 10000
MsgBox "ยอดเงินในบัญชี: " & acc.Balance
End Sub
ในตัวอย่างนี้, `Account` class ช่วยให้เราสามารถกำหนดเงื่อนไขในการปรับเปลี่ยนยอดเงินในบัญชีได้ โดยไม่อนุญาตให้มีการกำหนดค่าเป็นลบ
จากตัวอย่างข้างต้น หวังว่าท่านผู้อ่านจะเห็นความสำคัญของการใช้ฟังก์ชัน set และ get ภายใต้คอนเซ็ปต์ OOP ในภาษา VBA เพื่อการควบคุมการเข้าถึงข้อมูลที่ปลอดภัยและรัดกุมมากยิ่งขึ้น
เพื่อให้ท่านได้พัฒนาทักษะการเขียนโปรแกรมด้วย VBA และ OOP อย่างเข้าใจ และใช้เทคนิคต่างๆ ได้อย่างคล่องแคล่ว ไม่ว่าจะเป็นการจัดการฐานข้อมูล, การพัฒนาแอปพลิเคชั่นหรือแม้แต่การปรับปรุงกระบวนการทำงานในสำนักงานของท่าน เราขอเชิญชวนให้ท่านเข้าร่วมคอร์สเรียนที่ Expert-Programming-Tutor (EPT) เพื่อพัฒนาความรู้และทักษะของท่านไปอีกขั้น พร้อมกับการแนะนำและประสบการณ์จากผู้เชี่ยวชาญ ที่นี่ที่ EPT, ทุกคำถามเกี่ยวกับโปรแกรมมิ่งจะได้รับคำตอบและทุกปัญหาจะถูกแก้ไขด้วยวิธีการที่เหมาะสมที่สุดครับ/ค่ะ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM