ฝึกใช้คำสั่งลัดจากแป้นพิมพ์ เพื่อสร้างรหัสที่ยืดหยุ่น

ดังที่อธิบายไว้ในเบื้องต้นแล้วว่า วิธีคลิกเมนู คลิกเซลล์ หรือคลิกเพื่อเลือกสิ่งที่ต้องการบนหน้าจอ จะสร้างรหัสที่ตายตัว ไม่สามารถนำรหัสไปใช้ต่างที่ต่างเวลาแตกต่างจากสถานการณ์เดิม แทนที่จะคลิก ขอให้ใช้แป้นพิมพ์ในระหว่างการบันทึก Macro ซึ่งทั้งนี้วิธีใช้แป้นพิมพ์ที่ดูแล้วว่า ทำงานเหมือนกัน ไม่จำเป็นว่าจะเกิดรหัสจากการบันทึกที่ยืดหยุ่นเสมอไป

สมมติว่า ในตารางมีข้อมูลบันทึกไว้ในเซลล์ A1:D2 แล้วเราต้องการสร้างรหัส VBA เพื่อเลือกพื้นที่ที่เก็บข้อมูล จะสามารถใช้แป้นพิมพ์เลือกพื้นที่เดียวกันนี้ได้หลายแบบ และรหัสแต่ละแบบจะมีความยืดหยุ่นมากน้อยต่างกัน

image007

ก่อนที่จะเริ่มบันทึก Macro ขอให้คลิกเลือกเซลล์ A1 ไว้ก่อนจากนั้นจึงเริ่มบันทึก Macro ตามการใช้แป้นพิมพ์ได้หลายวิธี

วิธีที่ 1 กดปุ่ม Ctrl+* เพื่อเลือก Current Region รหัส VBA ที่เกิดขึ้นคือ

Selection.CurrentRegion.Select

วิธีที่ 2 ต้องบันทึก 2 ขั้นตอน

  1. กดปุ่ม Ctrl+Shift+ลูกศรขวา พร้อมกัน จากนั้น
  2. กดปุ่ม Ctrl+Shift+ลูกศรชี้ลง พร้อมกัน

Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select

วิธีที่ 3 ต้องใช้แป้นพิมพ์เลือกทีละเซลล์จากขวามาซ้าย ตามด้วยจากบนมาล่าง

  1. กดปุ่ม Shift พร้อมกับกดปุ่มลูกศรขวา 3 ครั้ง
  2. กดปุ่ม Shift พร้อมกับกดปุ่มลูกศรลง 1 ครั้ง

Range("A1:D2").Select

วิธีที่ 4 กดปุ่ม Ctrl+Shift+End เพื่อเลือกจนถึงเซลล์ขวาล่างสุดของตาราง

Range(Selection, _
ActiveCell.SpecialCells(xlLastCell)).Select

วิธีที่ 5 วิธีนี้ใช้หลักเลือกย้อนจากล่างขึ้นบน

  1. กดปุ่ม F5 ไปเลือกเซลล์ D65536 บรรทัดล่างสุดของตาราง
  2. กดปุ่ม End แล้วตามด้วยปุ่มลูกศรชี้ขึ้น เพื่อเลือกเซลล์ D2
  3. กดปุ่ม Ctrl+Shift พร้อมกับปุ่ม Home เพื่อเลือกย้อนกลับมาเซลล์ A1

Application.Goto Reference:="R65536C4"
Selection.End(xlUp).Select
Range(Selection, Cells(1)).Select

ทั้ง 5 วิธีสามารถใช้เลือกพื้นที่ตารางจากเซลล์ A1:D2 คือ เซลล์ที่มีเลข 11 จนถึงเซลล์ที่มีเลข 88 ได้เหมือนกัน แต่วิธีที่ยืดหยุ่นคือวิธีที่ 5 วิธีเดียวเท่านั้น เพราะสามารถนำมาใช้เลือกพื้นที่ จากเซลล์ที่มีเลข 11 จนถึงเซลล์ที่มีเลข 88 ได้เหมือนเดิม แม้ว่าตารางจะมีลักษณะเปลี่ยนไป ไม่ได้มีข้อมูลในเซลล์ติดต่อกันเช่นเดิม

image008

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

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