รหัส VBA ที่ใช้กันมากที่สุด เห็นจะเป็นรหัสที่เกี่ยวข้องกับการเรียกใช้พื้นที่ในตาราง Excel นี่แหละ ทั้งนี้เพื่อทำให้เราสามารถจัดการกับตัวแฟ้ม ชีท row column หรือเซลล์ ได้ตามต้องการ และแทนที่จะพึ่งรหัสซึ่งเกิดขึ้นจากการใช้ Macro Recorder ทางเดียว เราควรฝึกเขียนรหัส VBA ขึ้นมาใช้เองบ้าง เพราะแทนที่จะต้องใช้รหัสที่ได้จากการบันทึก เพื่อเลือกแฟ้ม แล้วเลือกชีท แล้วเลือกเซลล์ทีละขั้น เราสามารถใช้รหัสที่เขียนขึ้น พาลัดไปยังเซลล์ที่ต้องการได้โดยตรง

ในรหัส VBA บรรทัดหนึ่งๆ จะไล่เรียงเนื้อหาจากซ้ายไปขวาโดยใช้เครื่องหมายจุดเป็นตัวแบ่ง ซึ่งเครื่องหมายจุดนี้ จะแปลว่า ของ ก็ได้ โดยจะไล่เรียงจากของใหญ่ไปของย่อย เช่น

Worksheets("Sheet1").Range("A1").Select
หรือ
Sheets("Sheet1").Range("A1").Select

รหัสบรรทัดนี้มีความหมายว่า "ให้เลือกเซลล์ A1 ของตารางที่อยู่ในชีทชื่อ Sheet1" และถ้าดูลำดับคำจากซ้ายไปขวา เวลาเขียนจะเรียงจากใหญ่ไปย่อย จากชีทไปยังเซลล์ โดยสิ่งต่างๆใน Excel ซึ่งเห็นได้บนจอและถูกเรียกชื่อได้ ถือว่าเป็น Object เช่น

  • รหัสคำว่า Worksheets หมายถึง ตัวชีททั้งหมดหรือกลุ่มของชีท ซึ่งต้องลงท้ายด้วย s (เรียกว่าเป็น Collection ของชีท) โดยคำว่า Worksheets ยังหมายถึง ชีทที่เป็นตารางเท่านั้น (ถ้าอยากเรียกชีททั่วไป จะใช้คำว่า Sheets ซึ่งหมายรวมทั้ง Worksheet และ Chart sheet)
  • คำว่า "Sheet1" เป็นชื่อชีท ที่เราต้องการเลือกออกมาจากชีททั้งหมดใน Worksheets ซึ่งในกลุ่มของชีทอาจมีหลายชีท ดังนั้น เราต้องระบุชื่อชีทที่ต้องการให้ถูกต้องชัดเจน
  • Worksheets("Sheet1") จึงหมายถึง ชีทชื่อ Sheet1 ซึ่งเป็นชีทหนึ่งในชีททั้งหมดที่เป็นตาราง แต่ถ้าใช้ Sheets("Sheet1") จะหมายถึง ชีทชื่อ Sheet1 ซึ่งไม่จำเป็นต้องเป็นชีทที่เป็นตารางก็ได้

ส่วนคำว่า Select ท้ายสุด ถือว่าเป็น Method หมายถึงลักษณะอาการที่เราต้องการกระทำต่อตัว Object ดังนั้น Method Select จึงเท่ากับ สั่งให้คลิกเลือก

โดยทั่วไปในรหัสบรรทัดหนึ่งๆ รหัสเกี่ยวข้องกับ Object จะถูกเขียนไว้ซ้ายสุด ต่อด้วยเครื่องหมายจุด แล้วต่อด้วย Method แต่ถ้าต้องการระบุถึงสภาพลักษณะของ Object ที่ต้องการ จะใช้ Property เขียนเรียงต่อจาก Object เช่น

Columns("B:B").ColumnWidth = 15.5

  • Columns("B:B") เป็น Object ประเภท Column ซึ่งในที่นี้หมายถึงตัว Column B
  • ColumnWidth เป็น Property หมายถึง ความกว้างของตัว Column ซึ่งในคำสั่งบรรทัดนี้ ทำให้ Column B มีความกว้าง 15.5 pixel

Property ต่างจาก Object ตรงที่ Property ไม่มีตัวตนให้มองเห็นหรือคลิกได้บนจอ แต่จะมีลักษณะเป็นสภาพ เช่น ขนาดความสูง ความกว้าง ความยาว ความหนา สี หรือสภาวะการป้องกัน

หมายเหตุ เรื่อง Object, Property, และ Method นี้เป็นเพียงชื่อเรียกศัพท์เทคนิคที่ยกขึ้นมา เพื่อแนะนำให้ทำความรู้จักกันไว้เท่านั้น ในขั้นนี้ยังไม่จำเป็นต้องสนใจเสียเวลาค้นหาว่า สิ่งใดบ้างเป็น Property ก็ได้ ขอเพียงระลึกไว้ว่า โครงสร้างรหัสคำสั่งแต่ละบรรทัด กำหนดความสำคัญจากซ้ายไปขวา เรียงจากสิ่งใหญ่ไปย่อยต่อไปเรื่อยๆ และถ้าอยากจะรู้ว่า VBA มีรหัสเป็นอย่างไร ขอให้ทดลองใช้ Recorder นั่นแหละ เมื่อคลิกเลือกลงไปในตาราง แล้วคลิกสั่งบนเมนู ก็จะเกิดบรรทัดคำสั่ง เรียง Object, Property, Method ขึ้นจากซ้ายไปขวาให้เอง

Author: สมเกียรติ ฟุ้งเกียรติEmail: This email address is being protected from spambots. You need JavaScript enabled to view it.

E-Learning

Go to top