วิธีใช้ Range Name เพื่อทำให้รหัส VBA เกิดความยืดหยุ่น

Range Name เป็นชื่อที่เราตั้งขึ้นให้กับเซลล์ โดยจะเป็นเซลล์เดียว หรือหลายเซลล์ก็ได้ ซึ่งชื่อ Range Name ที่ตั้งขึ้นนี้นอกจากจะช่วยทำให้สูตรมีความหมายชัดเจนในตัว มากกว่าการใช้สูตรอ้างอิงจากเซลล์โดยตรง (เช่น เดิมใช้สูตรหากำไร =A1-B1 แต่ต่อมาใช้ Range Name แทนจะเห็นสูตร =Income-Cost) เรายังใช้ Range Name ช่วยทำให้รหัส VBA ที่มีอยู่นั้น ไม่จำเป็นต้องถูกแก้ไขเปลี่ยนแปลงอีกต่อไป

วิธีตั้งชื่อ Range Name ให้กับเซลล์ สามารถใช้วิธีง่ายๆโดยคลิกเลือกเซลล์หรือพื้นที่ตารางที่ต้องการก่อน จากนั้นให้พิมพ์ชื่อลงในช่อง Name Box ซึ่งอยู่ด้านซ้ายสุดของ Formula Bar หรือจะใช้เมนู Formulas > Define Name  ตั้งชื่อแทนการใช้ Name Box ก็ได้

สมมติว่า ต้องการตั้งชื่อเซลล์ A1 ว่า Target ให้คลิกที่เซลล์ A1 ก่อนจากนั้นพิมพ์คำว่า Target ลงไปในช่อง Name Box แล้วกด Enter รับชื่อลงไป

image012

หรือใช้วิธีตั้งชื่อผ่านเมนู Formulas > Define Name

image013

หลักการตั้งชื่อ Range Name ที่ดี ให้ใช้ตัวอักษรภาษาอังกฤษตัวใหญ่ผสมตัวเล็ก อย่าใช้ตัวใหญ่ทั้งหมดหรือตัวเล็กทั้งหมด ถ้าอยากจะแทรกตัวเลขลงไปในชื่อก็ได้ เพียงแต่ต้องใช้ตัวอักษรเป็นตัวแรกในชื่อก่อน ส่วนชื่อที่ตั้งนั้นควรตั้งให้สื่อถึงความหมายตรงกับเรื่องที่เราต้องการ และพยายามอย่าตั้งชื่อที่อาจซ้ำกับชื่อที่ใช้เรียกภายใน Excel หรือ VBE เช่น Sheet, Cell, Range, AB123 เป็นต้น

วิธีนำชื่อ Range Name มาใช้ใน VBE

ถ้าใช้ Macro Recorder ให้บันทึกเริ่มจากคลิกเข้าไปหาแฟ้มที่ต้องการให้ได้ก่อน จากนั้นให้กดปุ่ม F5 แล้วดับเบิลคลิกชื่อที่ต้องการ จะได้รหัส VBA

Windows("Book1.xls").Activate
Application.Goto Reference:="Target"
ActiveCell.FormulaR1C1 = "123"

ถ้าเขียนรหัสเอง ให้ใช้ Target แทนลงไปในส่วนของชื่อชีทและตำแหน่งเซลล์ ดังนี้

Windows("Book1.xls").Activate
Range("Target") = 123

หมายเหตุ แม้จะใช้ Range Name ช่วยทำให้รหัส VBA ยืดหยุ่นตามการเปลี่ยนแปลงใน Excel ได้แล้วก็ตาม แต่ยังจำเป็นต้องใช้คำสั่ง Windows("Book1.xls").Activate พาไปยังแฟ้มที่มี Range Name ชื่อ Target ก่อนเสมอ หรือถ้าไม่ต้องการใส่บรรทัดนี้ เราต้องเตรียมให้แฟ้ม Book1.xls เป็นแฟ้มที่กำลังถูกเลือกใช้งานไว้ก่อน จากนั้นจึงจะใช้คำสั่งเพียง Range("Target") = 123 เพราะ VBE จะตามหา Range Name ชื่อ Target ได้จากแฟ้มที่มีชื่อ Target ตั้งไว้แล้วเท่านั้น

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