28 เม.ย. 2022 เวลา 00:07 • การศึกษา
ปกติเราสามารถรัน code VBA ได้จากแถบDeveloper หรือ จะทำการกดคีย์ลัด เพื่อให้รันโปรแกรมเลยก็ได้ แต่บางครั้งเราต้องทำงานกับคนที่อาจจะไม่ชำนาญหรือไม่รู้จักVBA อาจจะทำงานได้ยาก เช่นให้เด็กฝึกงานคีย์ข้อมูลหรือดึงข้อมูลเป็นต้น ดังนี้ ทาง Microsoft ก็ได้จัดให้มี GUI หรือ UserForm
มาให้ โดยตัว userform เองสามารถทำได้ทั้งรับข้อมูล และแสดงข้อมูลภายในตัว ซึ่งทำให้การทำงานกับคนที่เชียนโปรแกรมไม่ได้ หรืออ่านโปรแกรมไม่เป็นได้ดี
สิ่งที่เราต้องทำคือการสร้าง ในส่วนของ front-end และ back-end ตอนนี้เราจะมาเริ่มทำในส่วนของfront-end กันก่อน คือการสร้างตัวฟอร์มขึ้นามา
เพือ่ให้ผู้ใช้งาน หรือ end user สามารถทำงานได้ทันที
ใหเราเข้าไปที่ แภบ deveroper > visual basic >VBA project คลิ๊กขาว insert เลือก Userform จะได้หน้าต่างดังต่อไปนี้
จะเห็นว่ามี กล่องเครื่องมือ pop up ออกมา ให้เราเลือก listbox และ picture ใส่ลงไป ก่อน และ ให้เพิ่มกล่องข้อความ(textbox) ลงไปด้วยอีกหนึ่งกล่อง
เมื่อทำเสร็จแล้วจะได้หน้าตาประมาณนี้
ให้ทำการแก้ไข property โดยให้ตั้งชื่อว่า Product และ caption เปลี่ยนเป็นสินค้า แทน หากไม่มี Properties window ให้เปิดหาที่ แถบ View
ก่อนที่เราจะทำการเขียนcode เราต้องมากำหนด object OLE ก่อนโดยการ เข้าไปที่ insert เลือก Active X controls เลือกรูปภาพด้านล่าง เสร็จแล้วลาก
กรอบสี่เหลี่ยมเพื่อทำการกำหนดจุดที่จะโหลด รูปภาพลงไป
เข้าไปแก้ไข ชื่อ (name) และแก้ไข Picture หรือก็คือการโหลดรูปที่เรามีลงไปนั้นเอง เมื่อทำขั้นตอนทั้งหมดเสร็จแล้วให้ทำการกดที่
Design mode เพื่อออกจากโหมด ถ้าทำถูกต้อง รูปภาพที่เราทำจะไม่สามารถขยับได้ หากต้องการแก้ไขให้เข้าไปคลิ๊กที่ Design mode
อีกครั้งหนึ่ง ก็จะสามารถทำการแก้ไขได้
เมื่อแก้ไขแล้ว จะได้รูปร่างตารางรูปภาพและข้อมูลดังรายการด้านล่าง
ต่อมาให้เขียน code ดังต่อไปนี้
ตัวนี้เป็นการนำชื่อเข้าไปอยู่ใน ListBox1
ส่วนนี้เป็นการนำ เอารูปมาแสดงเมื่อเราทำการเลือก items ใน Listbox เมื่อเรากด F5 หรือกดลูกศร เพื่อรันโปรแกรม เราจะได้หน้าตา UserForm เพื่ค้นหารูปภายในExcel ของเราได้แล้ว
หมายเหตุ::: หากเราไม่ต้องการให้ไฟล์excelใหญ่เกินไป (โหลดช้า) อาจแก้ไขโดยดึงรูปภาพจากfolderข้างนอกโดยเปลี่ยนคำสั่งในselect case เป็น
UserForm1 .image1.pictures = LoadPicture(“filepath”)
โดยfilepath คือที่อยู่ของไฟล์ในเครื่องมีค่าเป็น string

ดูเพิ่มเติมในซีรีส์

โฆษณา