วันนี้จะมาสร้าง Custom menu เพิ่มเข้าไปในโปรแกรม Microsoft Excel เพื่อเอาไว้ใช้ในงานเฉพาะของผมเองครับนอกจากผมจะดูแลระบบคอมพิวเตอร์เป็นหน้าที่หลักแล้ว อีกเรื่องหนึ่งที่เกี่ยวเนื่องกันจนหลีกเลี่ยงไม่ได้ ก็คือการทำงานกับโปรแกรม Excel นี่เอง แรกเริ่มผมได้ไปดูแลระบบอยู่ที่สำนักงานบัญชี ก็เลยได้จับโปรแกรมนี้ไปโดยปริยาย แต่สมัยนั้นไม่ใช่โปรแกรม Excel แต่เป็นโปรแกรมโลตัส 123(Lotus 123) ซึ่งผมยังไม่รู้จักระบบวินโดวส์เลยด้วยซ้ำ ผมว่าไม่น่าจะมีใครจำได้แล้วละ ถ้าอยากเห็นหน้าค่าตาก็สามารถเสิร์จกูเกิ้ลดูได้นะทำอยู่หลายปีเหมือนกันครับ จากคอมพิวเตอร์เพียงเครื่องเดียวกับเครื่องพิมพ์แคร่ยาวอีก 1 ตัว ก็พัฒนาขึ้นมาเป็นระบบวินโดวส์แล้ว โปรแกรมก็ได้เริ่มใช้แล้ว แต่อินเตอร์เน็ตยังเป็นเรื่องไกลตัว อยากรู้เรื่องอะไร ต้องหาซื้อหนังสืออ่านลูกเดียว ด้วยความที่เป็นคนคอมพิวเตอร์เพียงคนเดียวของบริษัทฯ ก็ต้องเป็นที่พึ่งให้กับพนักงานเขาด้วยตั้งแต่ปลั๊กไฟหลวม กาต้มน้ำไม่ร้อน พัดลมไม่ส่าย รวมไปถึงโจทย์ที่มาทุกวัน ทำไมคำนวณผิด? ทำแบบนี้ได้มั้ย? ช่วยแก้ตารางให้หน่อย... เดือดร้อนผมต้องขวนขวายหาหนังสือมาอ่านแล้วก็อ่าน อ่านจนสมัยนั้นเริ่มทำ Macro ขึ้นมาช่วยในการทำงานได้เลย ก็สนุกอยู่เงียบๆคนเดียว เพราะมีห้องส่วนตัวให้นั่งทำงานด้วย (Excel Macro คืออะไร ค้นในกูเกิ้ลได้นะครับ)ต่อมาอีกหลายปี ผมย้ายจากการดูแลระบบให้สำนักงานบัญชี มาดูแลระบบให้กับบริษัทด้านการรับจ้างขนส่งด้วยรถบรรทุก เรียกง่ายๆว่ามาเป็น Admin พ่วงด้วยการเคยเป็นผู้พัฒนาระบบงานอัตโนมัติให้กับสำนักงานบัญชี ก็เลยได้มาด้วยความคาดหวังว่า จะต้องมาพัฒนาระบบงานอัตโนมัติ(ด้วย Excel) ให้กับงานใหม่นี้ด้วย ก็เข้าทางผมอีกแล้ว ตัวผมเองที่ใช้ชีวิตอยู่กับ Excel ทั้งวันอยู่แล้ว แต่คราวนี้ชีวิตง่ายขึ้นกว่าเดิม เพราะอินเตอร์เน็ตเข้าถึงแล้ว อยากรู้อะไรหรือติดขัดอะไร สามารถค้นกูเกิ้ลได้ทันที รวมไปถึงการได้เข้าเป็นสมาชิกตามบอร์ดต่างๆในอินเตอร์เน็ต ได้ความรู้มาพัฒนางานพัฒนาตัวเองเยอะมากจาก Excel Macro ก้าวมาเป็น VBA (Visual Basic for Applications) ซึ่งถือว่าเป็นการ"เขียนโปรแกรม"เกือบๆจะ100%ไปแล้ว ผู้คนแถวๆนี้จึงมักเรียกผมว่า"โปรแกรมเมอร์" แต่ผมก็มักจะบอกว่าผมไม่ใช่นะ เรียนก็ไม่ได้เรียนมา อาศัยการอ่านหนังสือ ค้นอินเตอร์เน็ต สอบถามตามบอร์ด แล้วเอามาลองผิดลองถูกให้พนักงานได้ใช้งานกัน นับว่าโชคดีอย่างหนึ่งที่ผมมาถูกทาง นั่นก็คือผู้บริหารของที่นี่ก็ใช้ Excel เป็นหลักในการทำงานเหมือนกัน ก็เลยได้คุยเรื่องเดียวกันยาวๆไปพอมาถึงวันที่ผมจะใช้ Excel ในแบบที่เฉพาะเจาะจงกับงาน ก็เลยอยากจะมีเมนูเฉพาะเรื่องไว้ใช้เอง เวลาจะเรียกใช้ หรือเวลาจะให้คนอื่นใช้ จะได้ง่ายขึ้น แยกหมวดหมู่ออกมาชัดเจน ซึ่งก็เหมือนเดิมครับ (ไม่ใช่)โปรแกรมเมอร์อย่างผม ก็ต้องค้นอินเตอร์เน็ตอย่างหนักอีกเหมือนเคย ลองค้นด้วยคำว่า Create custom menu vba excel ก็ได้ข้อมูลตัวอย่างมาค่อนข้างเยอะเลยไฟล์ Excel ที่ผมจะใช้เขียน VBA เพื่อสร้างเมนูส่วนตัวไว้ใช้งานนี้ ผมจะใช้ไฟล์ที่มีนามสกุลเป็น .xlsb ครับ Excel จะมีนามสกุลของไฟล์ที่พบกันบ่อยๆดังนี้นามสกุล .xlsx เป็นไฟล์ทำงานทั่วๆไป ไม่สามารถจะเขียน VBA ได้ ถ้าฝืนบันทึกก็จะต้องลบคำสั่งที่เขียนไว้ทิ้งหมดนามสกุล .xlsm เป็นไฟล์ที่สามารถเขียน VBA ได้ บันทึกได้นามสกุล .xlsb จะมีขนาดที่เล็กกว่า ทำงานได้เร็วกว่า ใช้งานทั่วๆไปได้ วันไหนนึกอยากจะเขียนคำสั่งก็เขียนเข้าไป พร้อมกับกดบันทึกไปได้ทันทีผมใช้ Excel 2021 ในการทำงานนะครับ โดยใช้เมนูในแบบภาษาอังกฤษ ซึ่งก่อนที่จะเขียน VBA ได้นั้น จะต้องมีการตั้งค่าในส่วนของ Options/Trus Center เพื่อจัดการเกี่ยวกับ Security กันเสียก่อน ส่วนจะทำอย่างไรนั้น เสิร์จกูเกิ้ลได้เลยครับหลังจากที่ผมเปิดไฟล์เปล่าๆขึ้นมาแล้ว ผมจะต้องสั่ง Save As ให้เป็น .xlsb อย่างที่ผมต้องการเสียก่อนครับ โดยเปลี่ยนชื่อเป็น My Custom Menu สังเกตว่า ในช่อง File name นั้น สามารถพิมพ์ชื่อที่ต้องการลงไปได้เลย ไม่ต้องไประบายทึบเฉพาะตัวอักษรหน้า .xlsx แต่อย่างใด ส่วนที่ช่อง Save as type ก็เลือกเป็น xlsb แล้วผมก็บันทึกไว้บน Desktop นี่เอง หาง่ายๆไว้ก่อนครับการสร้างเมนูส่วนตัวหรือที่เรียกว่า Custom Menu นั้น สามารถสร้างได้มากมายหลายวิธี เป็นทั้งศาสตร์และศิลป์อยู่ในตัว สร้างออกมาแล้วบางทีก็ดูไม่น่าเชื่อถือ แรกๆที่ผมหัดสร้างหัดทำก็จะจัดเต็ม เอาให้ดูดีในสายตาตัวเองให้มากที่สุด หลายๆงานกลายเป็นสวยแต่ช้า ในที่สุดก็พบว่า "สูงสุดคืนสู่สามัญ" คือ คำๆนี้ยังใช้ได้ดีทีเดียว หลังๆมา งานของผมจึงมักจะทำให้ดูง่ายๆ ใช้ง่ายๆ สร้างได้เร็วๆเป็นหลัก ว่าแล้วก็เริ่มต้นกันเลยกด Alt+F11 โปรแกรมจะเปิดหน้า VBA Project ขึ้นมาคลิกที่เมนู Insert/Module จะได้หน้าว่างๆสำหรับเขียนโปรแกรม ปกติจะไม่ใช่พื้นดำแบบนี้นะครับ อันนี้ผมปรับแต่งให้สบายตากับการทำงานกลางคืนของผมเองเขียนโค้ดต่อไปนี้ลงไป ความจริงผมก็ไม่ได้เขียนเองซะทีเดียว แต่รวมๆแล้วเรียกว่าเขียนก็แล้วกันจริงๆแล้วตั้งใจจะเขียนไว้ตรงๆในนี้ เผื่อท่านที่สนใจจะสามารถ Copy เอาไปทดลองกันได้เลย แต่มีความขัดข้องบางประการ ผมเลยคัดลองไปวางไว้ใน Notepad เพื่อให้มองเห็นได้ชัดๆ แล้วค่อยๆพิมพ์เอาเองนะครับรูปเมื่อเขียนคำสั่งและคำอธิบายลงไปแล้วเมื่อสั่งรันคำสั่งที่เพิ่งเขียนลงไปนี้ จะพบว่ามีเมนู Add-ins เพิ่มเข้ามาในบรรทัดของเมนูหลัก เมื่อคลิกเข้าไป ก็จะพบกับเมนูตามที่ผมได้เขียนคำสั่งเอาไว้จะเห็นชื่อของเมนู และสัญลักษณ์วงกลมเล็กๆหน้าชื่อเมนู ซึ่งสัญลักษณ์อันนี้มีเป็นร้อยๆแบบ เลือกมาใช้ได้โดยการกำหนดค่า(ในที่นี้ค่า 1202) สามารถค้นหามาเลือกสรรเอาได้ครับต่อไปนี้เป็นโค้ดคำสั่งที่เตรียมไว้สำหรับการคลิกไปที่แต่ละเมนูครับรูปที่เขียนคำสั่งของแต่ละเมนูเพิ่มเข้าไปแล้วเรียบร้อยแล้วครับ การสร้างเมนูส่วนตัว หรือที่เรียกว่า Custom Menu ไว้ใช้เองในโปรแกรม Excel ด้วยวิธีง่ายๆแต่ได้ใจความ โค้ด VBA ที่ไม่ซับซ้อนจนเกินไป สร้างง่าย จะแก้ไขลดเพิ่มก็ง่ายครับ บอกก่อนว่า พอเราเปิดไฟล์นี้ขึ้นมาแล้วสั่งสร้างเมนูนี้แล้ว เมนูนี้จะติดอยู่กับ Excel ตลอดเวลา แม้ว่าจะปิดไฟล์นี้ลงไปแล้ว และเปิดไฟล์อื่นๆขึ้นมาใช้งาน ถ้าไปคลิกที่เมนู ไฟล์นี้ก็จะถูกเปิดขึ้นมาเองทันทีผมมีวิธีที่จะสร้างเมนูนี้ขึ้นมา เฉพาะเวลาที่ผมเปิดไฟล์นี้ขึ้นมาใช้งาน พอผมปิดไฟล์เลิกใช้งาน เมนูนี้ก็จะถูกลบทิ้งไป ไม่ไปรบกวนการทำงานกับไฟล์อื่นๆ เอาไว้คราวหน้าจะมาเล่าให้ฟังใหม่ครับผมเครดิตภาพประกอบ : โดยผู้เขียนอัปเดตข่าวสาร และแหล่งเรียนรู้หลากหลายแบบไม่ตกเทรนด์ บน App TrueID โหลดเลย ฟรี !