การสร้าง popup ที่มี Scroll bar ใน Word ด้วย vba
บางครั้งเราต้องการใช้ฟอร์มในโปรแกรม MS Word เพื่อแสดงข้อความบางอย่าง โดยให้แสดงเมื่อมีการกดปุ่ม ในกรณีของผม ผมใช้ Word สร้างเป็นบทเรียนปฏิสัมพันธ์ โดยกำหนดให้มีการฟังเสียงภาษาอังกฤษ และเมื่อกดปุ่มดู Script ก็จะมีหน้าจอใหม่ เป็น Popup เพื่อแสดงข้อความ พร้อมทั้งมี Scroll bar ให้สามารถเลื่อนขึ้นลงได้
วิธีการ มี 2 ขั้นตอนคือ
1. การสร้างฟอร์มใหม่ที่มี Scroll bar
2. การสร้างปุ่ม เรียกใช้งานฟอร์มที่สร้างขึ้น
การสร้างฟอร์มใหม่ที่มี Scroll bar
- เปิดใช้งานเมนู นักพัฒนา หรือ Developer tab ดูวิธีการที่ http://www.thongjoon.com/2015/04/media-player-word2010.html
- พิมพ์ข้อความตามต้องการ
- กดปุ่ม Alt + F11 เพื่อเปิดหน้าจอเขียนโค้ด
- ไปที่ Insert > UserForm
- ปรับขนาดของฟอร์มให้ได้ขนาดตามต้องการ โดยใช้เมาส์ลากที่มุมขอบของฟอร์ม
- เลือกเครื่องมือ กล่องข้อความ หรือ Textbox ในกล่องเครื่องมือ
- กำหนด Property ของฟอร์ม ให้สามารถทำงานอย่างอื่นได้ ในขณะที่ฟอร์มเปิดอยู่ โดยกำหนด showModal ให้เป็น False ทั้งนี้เพื่อให้สามารถทำงานอื่นได้ ในขณะที่เปิดฟอร์มนี้ค้างไว้ ถ้า showModal มีค่าเป็น True จะไม่สามารถทำอะไรได้ จนกว่าจะปิดฟอร์มนี้
- ลากวาง กล่องข้อความ หรือ Textbox บนฟอร์มให้มีขนาดเกือบเต็ม เพื่อแสดงข้อความ
- ที่ขอบของ กล่องข้อความ หรือ Textbox คลิกขวา เลือก Properties
- ในหน้าจอ Property ตั้งชื่อฟอร์ม เช่น myTextbox
- กำหนดให้ Multiline เป็น true เพื่อให้สามารถมีได้หลายบรรทัด
- กำหนด ลักษณะของ Scrollbar ตามต้องการ ในตัวอย่างกำหนดให้มีเฉพาะตามแนวตั้ง
- พิมพ์ข้อความในกล่องข้อความตามต้องการ
- กลับมาที่หน้าเดิมที่พิมพ์ข้อความไว้แล้ว
- ไปที่แถบ นักพัฒนา เลือกเครื่องมือ ปุ่มคำสั่ง
- เมื่อคลิกที่เครื่องมือปุ่มคำสั่ง โปรแกรม Word จะสร้างปุ่มให้ ณ ที่เคอร์เซอร์
- สังเกตดูจะเห็นว่ากำลังอยู่ในโหมดออกแบบ
- คลิกขวาที่ปุ่ม เลือก คุณสมบัติ และเปลี่ยนข้อความบนปุ่มตามต้องการ
- ปิดหน้าจอ Properties
- ดับเบิ้ลคลิกที่ปุ่มที่สร้างขึ้น
- ใช้คำสั่งเรียกใช้ฟอร์มที่สร้างขึ้น โดยใช้ชื่อของฟอร์ม และตามด้วยคำสั่ง show
- ปิดหน้าจอเขียนโค้ดและกลับมาที่หน้าหลัก
- คลิกโหมดออกแบบ เพื่อเข้าสู่โหมดปกติ
- คลิกที่ปุ่ม จะเปิดฟอร์มที่ทำขึ้น
ปัญหา
- เมื่อคลิกที่ฟอร์ม จะเห็นว่า เลื่อนไปบรรทัดสุดท้าย หรืออาจจะเปิดอยู่ในตำแหน่งบรรทัดสุดท้าย
- ผู้ใช้สามารถพิมพ์ข้อความเปลี่ยนแปลงได้
การแก้ไข
- คลิกโหมดออกแบบ
- กด Alt + F11 เพื่อไปที่หน้าจอเขียนโค้ด
- ถ้าไม่เห็นหน้าต่าง Project Explorer ให้ไปที่ View > Project Explorer
- ในหน้าต่าง Project Explorer คลิกขวาที่แบบฟอร์มที่สร้าง และเลือก View Code
- เลือกชื่อฟอร์ม และเลือก Activate เพื่อเขียนโค้ดสำหรับฟอร์มนี้ ในขณะที่ฟอร์มเริ่มทำงาน
- เขียนโค้ดสำหรับฟอร์มนี้ ตามตัวอย่างข้างล่าง เพื่อกำหนดให้แสดงบรรทัดที่ 1 และป้องกันการแก้ไข
- เมื่อกลับมาหน้าแรก และคลิกโหมดออกแบบ เพื่อกลับไปในโหมดปกติ และคลิกที่ปุ่ม จะแสดงหน้าจอ ตามต้องการ
- บันทึกเป็นไฟล์ *.docm เนื่องจากมีการใช้แมโคร หรือ vba
ดาวน์โหลดตัวอย่างไฟล์ คลิกที่นี่
ความคิดเห็น
แสดงความคิดเห็น