การเขียนโปรแกรมในภาษา VBA (Visual Basic for Applications) มักจะถูกใช้ในการสร้างออโต้แมทให้กับโปรแกรมในชุด Microsoft Office โดยเฉพาะ Excel แต่หนึ่งในข้อจำกัดที่สามารถพบได้คือความขาดแคลนเรื่องการรองรับการทำงานแบบ Multithreading หรือการทำงานหลายเธรด
แม้ VBA จะไม่มีการสนับสนุน Native Threading แต่ก็ยังมีเทคนิคที่จะช่วยให้เราใช้ความสามารถนี้ได้ในบางประการ ในบทความนี้เราจะมาดูวิธีการทำงานกับ Thread ในภาษา VBA และตัวอย่าง CODE พร้อมทั้งยกตัวอย่าง Use case ที่น่าสนใจในโลกจริง
ในโปรแกรมมิ่ง โดยทั่วไป Thread คือ โปรแกรมย่อยที่รันอยู่ในกระบวนการหลัก ซึ่งสามารถเพิ่มประสิทธิภาพการทำงานได้อย่างมากในสภาพแวดล้อมที่ต้องใช้เวลาในการประมวลผลสูง และใน VBA เองเรามีแนวทางที่สามารถสร้างฟังก์ชันที่ทำงานแยกต่างหากในเชิงเกือบจะเหมือน Thread ได้
เราสามารถใช้งาน Windows API เพื่อทำให้โปรแกรมของเราสามารถทำงานหลายการทำงานพร้อมกันได้ ในที่นี้เราจะใช้ฟังก์ชันที่ชื่อ `CreateThread` ซึ่งเป็นฟังก์ชันที่สร้างเธรดใหม่
Code ตัวอย่าง
ในตัวอย่างข้างต้น เราสร้างการทำงานของเธรดที่ทำการประมวลผล 10 ครั้ง และรอทุกๆ 1 วินาทีโดยใช้ฟังก์ชัน `CreateThread` จาก API เพื่อสร้างเธรดใหม่
งานทางด้านการพัฒนาระบบรายงาน
ในบริษัทที่ทำงานเกี่ยวกับการวิเคราะห์ข้อมูลขนาดใหญ่ การสร้างรายงานที่มีขนาดใหญ่ใน Excel อาจใช้เวลานานมาก การใช้โค้ดการสร้างเธรดสามารถช่วยในการคำนวณข้อมูลพื้นฐาน หรือเรียกใช้ API หลายตัวพร้อมกัน เช่นการดึงข้อมูลจากฐานข้อมูลหรือการจัดรูปแบบเอกสารที่ต้องใช้เวลานาน อาจจะทำให้ผู้ใช้สามารถทำงานได้ในขณะที่รอการเสร็จสิ้น
การประมวลผลข้อมูลในเวลาจริง
กรณีที่จำเป็นต้องประมวลผลข้อมูลในเวลาจริงเช่นการซื้อขายหุ้น ระบบสามารถสร้างเธรดใหม่แต่ละตัวสำหรับการเชื่อต่อ API ต่างๆ และจัดการข้อมูลในแบบเรียลไทม์เพื่อตอบสนองต่อการเปลี่ยนแปลงของตลาด จะช่วยให้การดำเนินการในระบบสามารถทำได้มีประสิทธิภาพมากขึ้น
การเข้าถึงความสามารถในการทำงานแบบ Multithreading ใน VBA อาจมีข้อจำกัดอยู่ แต่การทำความเข้าใจวิธีการใช้งานและนำ API ของ Windows มาใช้ในการสร้างโปรแกรมอาจช่วยให้การทำงานของเราเร็วและมีประสิทธิภาพมากขึ้น ทั้งนี้การศึกษาและเข้าใจการทำงานภายในของเธรดจึงมีความสำคัญอย่างมากกับนักพัฒนา
หากคุณสนใจในการเรียนรู้เกี่ยวกับการเขียนโปรแกรมและต้องการอัปเกรดทักษะของคุณในด้านนี้ ขอแนะนำให้คุณเข้าร่วมศึกษาที่ EPT (Expert-Programming-Tutor) ที่มีหลักสูตรต่างๆ ที่จะช่วยขยายความรู้และทักษะของคุณได้ในทุกระดับความสามารถ ตั้งแต่พื้นฐานจนถึงขั้นสูง นอกจากนี้ที่ EPT ยังมีอาจารย์มืออาชีพที่จะคอยให้คำแนะนำและช่วยเหลือคุณในกระบวนการเรียนรู้ ไม่ว่าคุณจะสนใจเรื่องใดในโลกของการเขียนโปรแกรม คุณสามารถที่ EPT ช่วยให้การเรียนรู้ของคุณสนุกและมีประสิทธิภาพมากยิ่งขึ้นได้แน่นอน!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM