ข้อควรสังเกตและข้อควรระวังในการเขียนรหัส VBA

image005

  1. เมื่อกดปุ่ม ALT+F11 เพื่อเปิด VBE ขึ้นมาแล้ว ไม่มีจอ Window ภายในแบ่งเป็นส่วนๆ ให้ใช้เมนูของ VBE สั่ง View > Project Explorer และ View > Properties Window เพื่อแบ่งจอด้านซ้ายให้แสดงชื่อแฟ้มและโครงสร้างของแฟ้ม ปรากฏให้เห็นใน Project Explorer (ส่วน Properties Window นั้น ไม่จำเป็นต้องเปิดขึ้นก็ได้)
  2. ให้สั่งปรับระบบภาษาที่ใช้ให้เป็นภาษาไทย ในเมนูของ VBE ให้สั่ง Tools > Options > Editor Format > Font เลือก Font ไทย (แนะนำ Tahoma Bold(Thai))
  3. ชุดคำสั่งที่ใช้งานทั่วไป ให้เขียนเก็บไว้ในชีทชื่อ Module1, Module2, Module3 ...โดยใช้เมนู Insert > Module ใน VBE จะช่วยสร้าง Module โดยเรียงเลขต่อท้ายให้เรื่อยไป
  4. ให้สังเกตว่า ในหน้าจอส่วนของ Project Explorer เมื่อดับเบิลคลิกที่ชื่อ Module1 จะมีสีพื้นใต้ชื่อเป็นสีเทาจาง พร้อมกันนั้นจอด้านขวาจะเปิด Code Window เป็นพื้นที่ใช้เก็บรหัสเปิดขึ้นมาให้เห็น และด้านบนซ้ายของจอ จะแสดงชื่อแฟ้มต่อด้วยชื่อ Module เช่น Book1.xlsx [Module1(Code)] ทั้งนี้เพื่อแสดงให้เห็นชัดว่า Code Window ที่กำลังใช้งานนั้นเป็นของ Module1 ชัดเจน (อย่าดูแค่สีใต้ชื่อ Module1 เพราะถ้าลองคลิกที่ชื่อ Module1 จะเปลี่ยนสีพื้นเป็นสีเข้ม ซึ่งต้องดับเบิลคลิกจึงจะเป็นสีเทาจาง)
  5. ในขั้นต้นที่เพิ่งเริ่มเรียนรู้ VBA นั้น ให้ตรวจสอบ VBE ว่า Tools > Options > Editor ไม่ได้กาช่อง Require Variable Declaration (หากพบว่าเดิมกาไว้ ให้ตัดกาทิ้งไป ซึ่งคำสั่งนี้ถ้ากาไว้ จะทำให้ทุกครั้งที่ Insert > Module ใหม่ จะมีคำสั่ง Option Explicit เขียนไว้ในบรรทัดแรก ดังนั้นถ้าพบคำว่า Option Explicit ก็ให้ลบทิ้งบรรทัดนี้ออกไปด้วย)
  6. ควรแยกเก็บชุดคำสั่งที่ทำงานต่างกันโดยสิ้นเชิง ไว้ต่าง Module กัน
  7. หากใช้ Macro Recorder ช่วยสร้างรหัส ควรบันทึกขั้นตอนสั้นๆแยกออกจากกันในแต่ละครั้ง เพื่อทำให้เกิด Sub Procedure แยกเก็บรหัสแต่ละชุดออกจากกัน ซึ่งทุกครั้งที่เปิดแฟ้มขึ้นมาบันทึก Macro ใหม่ จะพบว่า VBE เปิด Module ใหม่แยกจาก Module เดิมเสมอ
  8. ถ้าต้องการกำหนด Shortcut Key ให้กับชุดคำสั่งที่เขียนเอง หรือเปลี่ยนแปลง Shortcut Key ชุดคำสั่งที่ใช้ Macro Recorder ให้กลับที่ Excel แล้วสั่ง Developer > Macros > คลิกเลือกชื่อชุดคำสั่ง แล้วกดปุ่ม Options... จะเห็นช่องที่พิมพ์ Shortcut Key ลงไปได้ (สังเกตว่า Shortcut Key ที่เขียนไว้ในส่วนของ Comment อาจไม่ตรงกับ Shortcut Key ที่แก้ไขใหม่ก็ได้ เพราะ VBE ไม่ได้ตามแก้สิ่งที่บันทึกเดิมไปแล้ว)
  9. ให้พิมพ์ตัวอักษรตัวเล็กเสมอ เว้นเฉพาะชื่อ Sub หรือชื่อตัวแปรที่คุณตั้งเองให้พิมพ์ตัวเล็กผสมตัวใหญ่ตามต้องการ เมื่อกด Enter หรือขึ้นบรรทัดใหม่จะพบว่า VBE ช่วยแก้ไขตัวอักษรตัวเล็กที่คุณพิมพ์ หากเป็นคำสั่งที่ VBE รู้จัก จะถูกแก้ให้เป็นตัวอักษรตัวใหญ่ผสมตัวเล็กต่อให้เอง แต่ถ้าเป็นคำที่สะกดผิดหรือ VBE ไม่รู้จัก ให้สังเกตว่าจะยังคงเป็นตัวเล็กตามเดิม
  10. เมื่อพิมพ์คำว่า Sub ตามด้วยชื่อของ Sub นั้นแล้วกดปุ่ม Enter จะพบว่า VBE จะพิมพ์เครื่องหมาย () ต่อท้ายชื่อ Sub ให้เอง และเกิดคำว่า End Sub พิมพ์ในบรรทัดต่อไปเพื่อแสดงให้เห็นจุดสิ้นสุดของ Sub
  11. VBE จะย้อนไปแก้ไขชื่อตัวแปรที่สะกดตรงกันให้เป็นตัวใหญ่ตัวเล็ก ตามชื่อตัวแปรตัวล่าสุดที่พิมพ์ลงไปให้เสมอ เช่น เดิมใช้ชื่อตัวแปร myVar แต่ต่อมาคุณพิมพ์ MYVar จะพบว่า VBE แก้ไข myVar เดิมทุกตัวให้เป็น MYVar
  12. ควรจัดย่อหน้ารหัส VBA ในชุดคำสั่งให้ย่อหน้าลดหลั่นกันไป เพื่อใช้แนวย่อหน้าที่ตรงกัน แสดงถึงคำสั่งระดับเดียวกัน
  13. ถ้ารหัสแต่ละบรรทัดยาวมาก สามารถจัดรหัสขึ้นบรรทัดใหม่ได้ โดยเคาะวรรคแล้วพิมพ์เครื่องหมาย _ แล้วกดปุ่ม Enter เพื่อพิมพ์ต่อในบรรทัดใหม่
  14. ใน VBE จะจดจำทุกขั้นตอนเดิมที่คุณทำไว้ตลอด ช่วยให้สามารถ Undo หรือกดปุ่ม Ctrl+z เพื่อย้อนกลับไปใช้รหัสเดิมที่เขียนไว้ได้ทุกขั้นที่ผ่านไปแล้ว
  15. ควรสั่ง Save ก่อนที่จะสั่ง Run รหัสเสมอ เพราะหากรหัสไม่ทำงาน ในบางครั้งอาจทำให้เครื่อง Hang และไม่สามารถสั่ง Save เก็บรหัสที่อุตส่าห์เสียแรงเสียเวลาสร้างเก็บไว้ได้
  16. สั่งรหัสให้ทำงาน โดยคลิกในพื้นที่ระหว่าง Sub ถึง End Sub ของชุดคำสั่งที่ต้องการ แล้วกดปุ่ม F5 หรือ ใช้เมนู Run > Run Sub หรือคลิกที่ปุ่ม Run (เป็นรูปลูกศรขวา) หากต้องการให้รหัสทำงานทีละบรรทัด ให้กดปุ่ม F8 ต่อกันไปเรื่อยๆ
  17. ถ้าต้องการสั่งรหัสให้ทำงานโดยสั่งจาก Excel ให้ใช้คำสั่งบนเมนู Developer > Macros จากนั้นคลิกเลือกชื่อชุดคำสั่งที่ต้องการ แล้วกดปุ่ม Run เพื่อสั่งให้ทำงานต่อเนื่องกันทั้งชุด หรือกดปุ่ม Step Into เพื่อสั่งให้ทำงานทีละบรรทัด (ซึ่งต้องกดปุ่ม F8 ต่อไปเอง)
  18. ในกรณีรหัสหยุดทำงานทั้งๆที่รหัสยังทำงานไม่ครบทั้งชุดคำสั่ง จะเห็นว่า VBE เปลี่ยนสีพื้นบรรทัดของรหัสที่ไม่ทำงานเป็นพื้นสีเหลือง และจะทำให้ทั้ง VBE และ Excel หยุดค้างตามไปด้วย ให้สั่ง Run > Reset หรือคลิกที่ปุ่ม Reset (เป็นรูปสี่เหลี่ยมจัตุรัส อยู่ติดกับปุ่ม Run) ก่อน พื้นสีเหลืองจะหายไป จากนั้นจึงจะสามารถกลับไปตรวจสอบแก้ไขรหัสต่อไป
  19. เมื่อทดสอบรหัสทั้งหมดว่าทำงานถูกต้องสมบูรณ์แล้ว ควร Export Module ออกไปแล้ว Remove Module ตามไปด้วย จากนั้นสั่ง Save แล้วเปิดแฟ้มขึ้นมาใหม่ แล้วจึง Import Module กลับเข้ามาเหมือนเดิม ทั้งนี้เพื่อช่วยลบขยะที่ตัว Module เก็บไว้ตลอดช่วงที่คุณแก้ไขรหัสทิ้งออกไป ทำให้แฟ้มมีขนาดเล็กลง

    ขั้นตอนนี้ให้คลิกขวาที่ชื่อ Module แล้วสั่ง Export File ออกไปเป็นแฟ้มใหม่มีนามสกุล bas แล้วคลิกขวา Remove Module จากนั้นคลิกขวาที่ตัว Module สั่ง Import File .bas เข้ามาใหม่

 

Related Articles

© Copyright 1999

สงวนลิขสิทธิ์ตามกฎหมาย

ห้ามนำข้อความหรือส่วนหนึ่งส่วนใดของบทความหรือวิดีโอหรือรูปภาพไปใช้เพื่อการค้าขาย หรือเพื่อประโยชน์ส่วนตัว

อนญาตให้นำไปใช้เพื่อสาธารณประโยชน์โดยขอให้ระบุที่มาและชื่อผู้เขียนกำกับไว้ด้วยเสมอ

ลิงก์เว็บ Excel Expert Training

เว็บสำหรับ เรียนออนไลน์

เว็บสำหรับ เรียนแบบกลุ่ม-ส่วนตัว

ติดตามข่าวสารได้จาก facebook

ถามปัญหาได้ที่ กลุ่มคนรัก Excel

และไลน์กลุ่ม Excel Expert Group

ที่อยู่และการติดต่อ

สมเกียรติ ฟุ้งเกียรติ 7/1 รามคำแหง ซอย 35 หัวหมาก บางกะปิ กทม 10240 โทร 097-140-5555, 02-718-9331

Excel@ExcelExpertTraining.com

sfk234x234