Visual Basic for Applications:
การใช้งานโปรแกรมดีบักเกอร์
วิธีการ:
ใน VBA, เดบักเกอร์เป็นส่วนหนึ่งของ Visual Basic Editor (VBE) นี่คือวิธีที่คุณสามารถใช้ประโยชน์จากมันได้:
ตั้งจุดหยุด (Breakpoints): คลิกในขอบซ้ายข้างโค้ดที่คุณสนใจ หรือวางเคอร์เซอร์บนบรรทัดนั้นแล้วกด F9 ซึ่งบอกให้ VBA หยุดการทำงานเมื่อมันถึงจุดนี้
Sub DebugExample() Dim counter As Integer For counter = 1 To 5 Debug.Print counter ' ตั้งจุดหยุดที่นี่ Next counter End Sub
เมื่อโค้ดทำงาน มันจะหยุดที่บรรทัด
Debug.Print counter
ทำให้คุณสามารถตรวจสอบค่าของตัวแปรได้เข้าไปทีละขั้น (F8): ด้วยคำสั่งนี้ คุณจะทำการทำงานโค้ดทีละคำสั่ง เข้าไปในขั้นตอนการเรียกใช้งานวิธีการต่างๆ มันมีประโยชน์ในการติดตามว่าโค้ดและฟังก์ชันของคุณทำงานร่วมกันอย่างไร
หน้าต่าง Watch: ใช้หน้าต่าง Watch เพื่อติดตามค่าของตัวแปรหรือนิพจน์ หากตัวแปรไม่อยู่ในขอบเขตที่กำหนด หน้าต่าง Watch จะระบุให้ทราบ คลิกขวาตัวแปร > เพิ่ม Watch
หน้าต่าง Immediate (Ctrl+G): หน้าต่างนี้มีประโยชน์อย่างมากสำหรับการทดสอบนิพจน์หรือการเปลี่ยนแปลงค่าตัวแปรในระหว่างการดีบัก พิมพ์
?variableName
เพื่อแสดงค่าปัจจุบันของตัวแปร หรือกำหนดค่าใหม่ด้วยvariableName = newValue
' ในหน้าต่าง Immediate ?counter ' พิมพ์ค่าปัจจุบันของ counter counter = 3 ' กำหนดค่าของ counter เป็น 3
ตัวอย่างผลลัพธ์:
เมื่อคุณถึงจุดหยุดและทำการดำเนินการทีละบรรทัดโดยใช้ F8, หน้าต่าง Immediate อาจแสดงผลลัพธ์ดังนี้:
counter = 1 counter = 2 counter = 3
ที่นี่ เราได้สอบถามตัวแปร
counter
หลังจากที่มีการทำซ้ำในแต่ละครั้ง
ทำความลึก:
เดบักเกอร์ใน VBA แม้ว่าจะมีความเข้มแข็ง แต่เป็นส่วนหนึ่งของประเพณีเครื่องมือการดีบักในภาษาโปรแกรมมิ่งที่พัฒนามาอย่างมากจากบรรพบุรุษในช่วงแรก ๆ นำมาใช้กับเวอร์ชั่นแรก ๆ ของ VBA เพื่อมุ่งให้นักพัฒนาเครื่องมือที่ง่ายแต่ทรงพลังสำหรับการตรวจสอบและแก้ไขโค้ด ตลอดเวลา การปรับปรุงได้รวมถึงจุดหยุดเงื่อนไข ความสามารถในการดูข้อมูลที่ดีขึ้น และการผสานรวมกับอินเตอร์เฟสของ Excel สำหรับการตรวจสอบข้อมูลที่ใช้สัญชาตญาณมากขึ้น
อย่างไรก็ตาม เมื่อเปรียบเทียบกับ Integrated Development Environments (IDEs) สมัยใหม่เช่น Visual Studio หรือ Eclipse เครื่องมือการดีบักของ VBA อาจดูเรียบง่าย ไอดีอีเหล่านี้มอบคุณสมบัติที่ซับซ้อนมากขึ้น เช่น การตรวจสอบตัวแปรเรียลไทม์ จุดหยุดขั้นสูง และกรอบการทดสอบหน่วยที่ผสานรวมกัน ในขณะที่ทางเลือกเหล่านี้ให้ประสบการณ์การดีบักที่ครอบคลุมมากขึ้น ความเรียบง่ายและความตรงไปตรงมาของเดบักเกอร์ VBA ยังคงเหมาะกับบริบทเฉพาะของการอัตโนมัติและเขียนสคริปต์ภายในแอปพลิเคชันของ Microsoft Office
สำหรับโปรแกรมเมอร์ที่คุ้นเคยกับสภาพแวดล้อมสมัยใหม่เหล่านี้ การปรับตัวให้เข้ากับเครื่องมือการดีบักของ VBA อาจต้องการการเปลี่ยนแปลงวิธีการ อย่างไรก็ตาม หลักการพื้นฐานของการตรวจสอบตัวแปร การเดินผ่านโค้ด และการสังเกตพฤติกรรมในระยะเวลาทำงานเป็นสิ่งทั่วไปทั้งหมด ด้วยการฝึกฝน เดบักเกอร์ VBA จึงกลายเป็นเครื่องมือที่จำเป็นไม่ได้ขาดสำหรับการรับประกันว่าสคริปต์อัตโนมัตินั้นทำงานได้อย่างไม่มีที่ติภายในระบบนิเวศของ Office