แมโคร Excel - การดีบักโค้ด
คุณได้เรียนรู้ว่ามาโครถูกจัดเก็บเป็นรหัส VBA ใน Excel คุณยังได้เรียนรู้ว่าคุณสามารถเขียนโค้ดเพื่อสร้างมาโครในโปรแกรมแก้ไข VBA ได้โดยตรง อย่างไรก็ตามเช่นเดียวกับกรณีที่มีรหัสใด ๆ แม้แต่รหัสแมโครก็สามารถมีข้อบกพร่องได้และแมโครอาจไม่ทำงานตามที่คุณคาดไว้
ต้องมีการตรวจสอบโค้ดเพื่อค้นหาข้อบกพร่องและแก้ไข คำที่ใช้สำหรับกิจกรรมนี้ในการพัฒนาซอฟต์แวร์คือการดีบัก
การแก้จุดบกพร่อง VBA
ตัวแก้ไข VBA ช่วยให้คุณหยุดการทำงานของโค้ดชั่วคราวและดำเนินการแก้ไขข้อบกพร่องที่จำเป็น ต่อไปนี้เป็นงานการดีบักบางส่วนที่คุณสามารถทำได้
- ก้าวผ่านรหัส
- การใช้เบรกพอยต์
- การสำรองข้อมูลหรือก้าวไปข้างหน้าในรหัส
- ไม่ก้าวผ่านแต่ละบรรทัดของรหัส
- การค้นหาสิ่งใด ๆ ในขณะที่ก้าวผ่านรหัส
- การหยุดการดำเนินการ
นี่เป็นเพียงงานบางส่วนที่คุณอาจดำเนินการในสภาพแวดล้อมการดีบักของ VBA
ก้าวผ่านหลักจรรยาบรรณ
สิ่งแรกที่คุณต้องทำสำหรับการดีบักคือการก้าวผ่านรหัสในขณะที่เรียกใช้งาน หากคุณมีความคิดว่าส่วนใดของโค้ดที่อาจทำให้เกิดข้อบกพร่องคุณสามารถข้ามไปที่บรรทัดของโค้ดนั้นได้ มิฉะนั้นคุณสามารถรันโค้ดทีละบรรทัดสำรองข้อมูลหรือดำเนินการต่อในโค้ด
คุณสามารถก้าวเข้าสู่โค้ดได้จากกล่องโต้ตอบแมโครในสมุดงานของคุณหรือจากตัวแก้ไข VBA เอง
Stepping into the code from the workbook
ในการเข้าสู่โค้ดจากสมุดงานให้ทำดังต่อไปนี้ -
- คลิกแท็บ VIEW บน Ribbon
- คลิกมาโคร
- เลือกดูมาโครจากรายการดรอปดาวน์
กล่องโต้ตอบมาโครจะปรากฏขึ้น
- คลิกชื่อมาโคร
- คลิกปุ่มก้าวเข้าสู่
ตัวแก้ไข VBA จะเปิดขึ้นและรหัสมาโครจะปรากฏในหน้าต่างรหัส บรรทัดแรกในโค้ดมาโครจะถูกเน้นด้วยสีเหลือง
Stepping into the code from the VBA editor
ในการเข้าสู่โค้ดจากตัวแก้ไข VBA ให้ทำดังต่อไปนี้ -
- คลิกแท็บ DEVELOPER บน Ribbon
- คลิก Visual Basic ตัวแก้ไข VBA จะเปิดขึ้น
- คลิกโมดูลที่มีรหัสแมโคร
รหัสมาโครจะปรากฏในหน้าต่างรหัส
คลิกแท็บ Debug บน Ribbon
เลือก Step into จากรายการแบบเลื่อนลง
บรรทัดแรกในโค้ดมาโครจะถูกเน้น รหัสอยู่ในโหมดการดีบักและตัวเลือกในรายการแบบเลื่อนลงการแก้ไขข้อบกพร่องจะทำงาน
การสำรองข้อมูลหรือก้าวไปข้างหน้าในรหัส
คุณสามารถเดินหน้าหรือถอยหลังในโค้ดได้โดยเลือกก้าวข้ามหรือก้าวออก
ไม่ก้าวผ่านแต่ละบรรทัดของรหัส
คุณสามารถหลีกเลี่ยงการข้ามโค้ดแต่ละบรรทัดได้หากคุณระบุส่วนที่เป็นไปได้ของโค้ดที่ต้องพูดถึงโดยเลือก Run to Cursor
การใช้เบรกพอยต์
หรือคุณสามารถตั้งค่าเบรกพอยต์ที่บรรทัดโค้ดเฉพาะและรันโค้ดโดยสังเกตผลลัพธ์ที่เบรกพอยต์แต่ละอัน คุณสามารถสลับเบรกพอยต์และล้างเบรกพอยต์ทั้งหมดได้หากจำเป็น
การใช้นาฬิกา
คุณสามารถเพิ่มนาฬิกาขณะดีบักเพื่อประเมินนิพจน์และหยุดการดำเนินการเมื่อตัวแปรบรรลุค่าที่ระบุ ซึ่งหมายความว่าคุณกำหนดค่านิพจน์ของนาฬิกาซึ่งจะถูกตรวจสอบจนกว่าจะเป็นจริงจากนั้นมาโครจะหยุดและปล่อยให้คุณอยู่ในโหมดหยุดพัก VBA มีนาฬิกาหลายประเภทให้คุณเลือกเพื่อให้บรรลุสิ่งที่คุณกำลังมองหา
การหยุดการดำเนินการ
ในระหว่างการดีบักเมื่อใดก็ตามหากคุณพบเบาะแสว่าเกิดอะไรขึ้นคุณสามารถหยุดการดำเนินการเพื่อถอดรหัสเพิ่มเติมได้
หากคุณเป็นนักพัฒนาที่มีประสบการณ์คำศัพท์เกี่ยวกับการดีบักเป็นที่คุ้นเคยสำหรับคุณและตัวเลือกการดีบักตัวแก้ไข VBA ทำให้ชีวิตของคุณง่ายขึ้น ถึงอย่างนั้นก็จะไม่ต้องใช้เวลามากในการฝึกฝนทักษะนี้หากคุณเรียนรู้ VBA และเข้าใจโค้ดแล้ว