18 มี.ค. 2022 เวลา 13:51 • การศึกษา
ก่อนอื่นเรามาทำความรู้จักกับ sub และ function กันก่อนว่ามันคืออะไร แตกต่างกันอย่างไร
สำหรับการเขียน VBA ใน Excel นั้นเรา สามารถแบ่งการทำงานเป็นโปรแกรมย่อยๆได้สองแบบคือ
sub ซึ่งมาจากคำว่า subroutine เปฺ็นโปรแกรย่อยที่เมื่อทำงานเสร็จแล้ว จะไม่มีการส่งค่าใดๆกล้บไปยังโปรแกรมอื่นที่เรียกตัวมันไปใช้งาน
ส่วนFunction เป็นโปรแกรมที่ทำงานเสร็จแล้วจะมีการส่งค่าที่ประมวลผลเสร็จแล้ว กลับไปยังโปรแกรมที่เรียกฟังก์ชั่นไปใช้งาน
ซึ่งตัวโปรแกรมทั้งคู่จะใส่พารามิเตอร์ ลงในวงเล็บของโปรแกรมหรือไม่ก็ได้ หรือเรียกว่าจะมีพารามิเตอร์หรือไม่ก็ได้นั้นเอง
โดย sub นั้นจะขึ้นต้นด้วย sub และปิดท้ายด้วย end sub ส่วน function ก็จะขึ้นต้นด้วย function ปิดด้วย end function และตัวมันเองต้องกำหนดtype หรือประเภทของค่าที่คืนกลับด้วย
เพื่อให้เห็นภาพเรามาสร้างตารางเพื่อทดสอบกันก่อน
ตาราง
เราใส่ข้อมูล ความกว้าง และความยาว ซึ่งมีค่าคงที่แค่2 ตัว (เดี๊ยวเราจะสร้างfunction เพื่อดึงค่ามาคำนวณ) โดยค่าที่ไม่คงที่คือความสูง และสิ่งที่เราต้องการคือ ปริมาตรนั่นเอง
แล้วสิ่งต่อมาที่เราทำคือเขียน code ดังต่อไปนี้ลงใน moduleที่เราสร้างขึ้นใน vba project
Function
ตัวฟังก์ชันนี้จะเก็บ ค่าที่คำนวณได้ไว้ที่ ตัวแปร area พร้อมที่จะคืนค่าให้ โปรแกรมที่เรียกใช้มัน เอาละเรามาสร้างโปรแกรมที่เรียกใช้ หรือ sub นั้นเอง
Subroutine
ตัวอักษรสีเขียวที่เห็นคือคอมเม้น ในตัวโปรแกรม ซึ่งมันจะไม่นำมาคำนวณ เพียงเราใส่ ( ‘ ) ลงไปด้านหน้าเท่านั้น
ส่วน debug.print เป็นการแสดงค่าออกมาทางคอนโซล ในที่นี้คือหน้าต่าง immediate (ไม่มีผลต่อการคำนวณ)
ส่วน with ถึง end with เป็นการใส่คุณสมบัติให้กับ object ในที่นี้คือ cells( i ,4 ) นั้นเอง เมื่อเรา รันโปรแกรม จะได้ผลดังนี้
Result
ไม่ยากใช่ไหม สำหรับการใช้ function ซึ่งมีประโยชน์มาก ทำให้เราสามารถแก้ไข ค่าต่างๆนอก sub ได้ โดยไม่ต้องเขียนใหม่ และเพิ่มรายละเอียดในการคำนวณอื่นๆได้เรื่อยๆ เพียงใส่ฟังก์ชันเข้าไปเพิ่ม เท่านั้นเอง
แล้วเจอกันใหม่ คราวหน้า ….จบ

ดูเพิ่มเติมในซีรีส์

โฆษณา