ส่วนควบคุม VBA ใน Excel: ฟอร์มและ ActiveX
⚡ สรุปอย่างชาญฉลาด
ส่วนควบคุม VBA ใน Excel คือองค์ประกอบแบบโต้ตอบ เช่น ปุ่ม ช่องทำเครื่องหมาย และกล่องข้อความ ที่ใช้สร้างส่วนติดต่อผู้ใช้แบบกราฟิก หน้านี้อธิบายเกี่ยวกับส่วนควบคุมแบบฟอร์ม ส่วนควบคุม ActiveX ความแตกต่างระหว่างทั้งสองประเภท และตัวอย่างการสร้างปุ่มคำสั่ง ActiveX แบบทีละขั้นตอน

การควบคุม VBA: การควบคุมฟอร์ม VBA และการควบคุม ActiveX ใน Excel
ตัวควบคุมฟอร์ม VBA/GUI ใน Excel
GUI เป็นตัวย่อของ Graphical User Interface (ส่วนต่อประสานกราฟิกกับผู้ใช้) GUI เป็นส่วนหนึ่งของโปรแกรมที่ผู้ใช้โต้ตอบด้วย GUI ประกอบด้วยตัวควบคุม ตัวควบคุม VBA ของ Excel เหล่านี้สามารถใช้ในฟอร์มได้ ตารางต่อไปนี้แสดงตัวควบคุม VBA ของ GUI ที่ใช้กันทั่วไปมากที่สุด
| S / N | Control | Descriptไอออน |
|---|---|---|
| 1 | คำสั่ง | ใช้ในการรันโค้ด |
| 2 | วงดนตรีผสม Box | ใช้เพื่อนำเสนอรายการแบบหล่นลงให้กับผู้ใช้ |
| 3 | ตรวจสอบ Box | ใช้สำหรับค่าจริงหรือเท็จ ช่องกาเครื่องหมายหลายช่องสามารถมีค่าจริงได้ในเวลาเดียวกัน |
| 4 | รายการ Box | ใช้เพื่อนำเสนอรายการง่ายๆ แก่ผู้ใช้ |
| 5 | ข้อความ Box | ใช้เพื่อยอมรับการป้อนข้อมูลของผู้ใช้ |
| 6 | แถบเลื่อน | ใช้สำหรับจัดทำแถบเลื่อนเพื่อการนำทาง |
| 7 | ปุ่มหมุน | ใช้เพื่อเพิ่มหรือลดค่าตัวเลขโดยคลิกลูกศรขึ้นหรือลงที่ปรากฏในปุ่มหมุน |
| 8 | ปุ่มตัวเลือก | ใช้สำหรับค่าจริงหรือเท็จ ปุ่มตัวเลือกเพียงปุ่มเดียวเท่านั้นที่สามารถมีค่าจริงในแต่ละครั้ง |
| 9 | ฉลาก | ใช้เพื่อแสดงข้อความคงที่ให้กับผู้ใช้ |
| 10 | ภาพ | ใช้ในการแสดงภาพ |
| 11 | Toggle ปุ่ม | ปุ่มที่กดแล้วและไม่ได้กด |
ในตัวควบคุม VBA GUI
- คลิกที่แท็บนักพัฒนา
- คลิกที่ปุ่มแทรกแบบเลื่อนลง
คุณจะได้รับแผงดร็อปดาวน์ดังต่อไปนี้
หากคุณวางเมาส์ไว้เหนือตัวควบคุมฟอร์ม VBA ชื่อของตัวควบคุมจะปรากฏดังที่แสดงด้านล่าง
การเพิ่มการควบคุม GUI ให้กับสเปรดชีต
ตอนนี้เราจะเพิ่มปุ่มคำสั่งลงในสมุดงานของเรา เพื่อที่เราต้องทำ
- คลิกที่แทรกแบบเลื่อนลง
- คลิกที่ปุ่มคำสั่ง (ActiveX Control) ดังภาพด้านบน
- ลากและวาดปุ่มบนแผ่นงาน
การตั้งค่าคุณสมบัติการควบคุม GUI
ตอนนี้เราจะตั้งค่าคำอธิบายของปุ่มให้มีคำอธิบายมากขึ้น
- คลิกขวาที่ปุ่มเท่ากับที่เราเพิ่งสร้างขึ้น
- เลือกเมนูคุณสมบัติ
- คุณจะได้รับหน้าต่างคุณสมบัติต่อไปนี้
- ตั้งค่าคุณสมบัติชื่อเป็นbtnButton คุณสมบัติชื่อถูกใช้เพื่อระบุตัวควบคุมในหน้าต่างรหัส btn เป็นคำนำหน้าสำหรับปุ่ม
- ตั้งค่าคุณสมบัติคำอธิบายภาพเป็นคลิกฉัน ข้อความในคุณสมบัติคำอธิบายภาพคือสิ่งที่ผู้ใช้จะเห็นบนปุ่ม
ปิดหน้าต่างเมื่อคุณทำเสร็จแล้ว
คุณจะได้รับผลลัพธ์ดังต่อไปนี้
ความแตกต่างระหว่างตัวควบคุมแบบฟอร์มและตัวควบคุม ActiveX
Excel มีตัวควบคุมอยู่สองประเภท และการเลือกใช้ตัวควบคุมที่เหมาะสมจะช่วยให้โปรเจ็กต์ง่ายขึ้น ตัวควบคุมแบบฟอร์มเป็นตัวควบคุมที่มีอยู่ใน Excel และจะเรียกใช้มาโครที่กำหนดไว้เพียงตัวเดียว ในขณะที่ตัวควบคุม ActiveX เป็นวัตถุที่สามารถตั้งโปรแกรมได้และตอบสนองต่อเหตุการณ์ต่างๆ ผ่านโค้ด VBA ตารางด้านล่างนี้เปรียบเทียบตัวควบคุมทั้งสองประเภท
| คุณสมบัติ (Feature) | การควบคุมแบบฟอร์ม | ตัวควบคุม |
|---|---|---|
| การติดตั้ง | ง่ายๆ ครับ แค่กำหนดมาโครหนึ่งตัวให้กับตัวควบคุม | ต้องใช้โค้ดเหตุการณ์ VBA เพื่อตอบสนอง |
| อสังหาริมทรัพย์ | ตัวเลือกที่จำกัด | ครอบคลุมอย่างกว้างขวาง รวมถึงแบบอักษร สี และลักษณะการทำงาน |
| อีเวนต์ | การกระทำเดียวเมื่อคลิก | กิจกรรมต่างๆ มากมาย เช่น Click, Change และ GotFocus |
| ความเข้ากันได้ | ทำงานบน Windows และ Mac Excel | ทำงานบน Windows เฉพาะ Excel เท่านั้น |
| เหมาะที่สุดสำหรับ | แบบฝึกหัดที่ง่ายและรวดเร็ว | แบบฟอร์มผู้ใช้แบบโต้ตอบและไดนามิก |
โดยสรุปแล้ว ให้ใช้ตัวควบคุม Form เมื่อต้องการมาโครเพียงตัวเดียว และเลือกใช้ตัวควบคุม ActiveX เมื่ออินเทอร์เฟซต้องการคุณสมบัติที่หลากหลาย หรือต้องตอบสนองต่อเหตุการณ์ของผู้ใช้หลายอย่าง
วิชาบังคับก่อน
ก่อนสร้างตัวอย่าง ActiveX โปรดเตรียมเวิร์กบุ๊กให้พร้อม เพื่อให้ตัวควบคุมพร้อมใช้งานและสามารถบันทึกมาโครได้
กำหนดค่า Microsoft Excel
ตามที่เราเห็นในบทช่วยสอนก่อนหน้านี้ ตรวจสอบให้แน่ใจว่า Ribbon ของคุณจะมีไอคอน “นักพัฒนา” ดังที่แสดงไว้ที่นี่
ตอนนี้เปลี่ยนชื่อ sheet1 เป็น “VBA Operaเรียกใช้คำสั่ง “tor” ตามที่แสดงในภาพหน้าจอด้านล่าง บันทึกเวิร์กบุ๊กในรูปแบบไฟล์ Excel Macro-Enabled Workbook (*.xlsm) (ดูภาพด้านล่าง)
หลังจากนั้นคลิกที่ปุ่มบันทึก
วิธีใช้ตัวควบคุม ActiveX ใน VBA
เมื่อเตรียมเวิร์กบุ๊กเสร็จแล้ว เราสามารถเพิ่มปุ่ม ActiveX ที่ใช้งานได้ ในส่วนนี้ของการควบคุม ActiveX ใน Excel เราจะมาดูวิธีการรวมปุ่ม 'commandclick' เข้ากับ VBA และเรียกใช้โปรแกรมโดยใช้ปุ่มนั้น
ขั้นตอน 1) ในขั้นตอนนี้ คลิกตัวเลือก “ปุ่มแทรก” จาก Active X Control จากนั้นเลือกตัวเลือกปุ่มคำสั่งจากนั้น
ขั้นตอน 2) หากต้องการแทรก "clickcommandbutton1" ให้ลากเคอร์เซอร์เมาส์ไปที่แผ่นงาน Excel
ขั้นตอน 3) จากนั้นคลิกขวาที่ปุ่มคำสั่ง แล้วเลือกตัวเลือก “ดู” Code"
ขั้นตอน 4) ตรวจสอบว่าคุณอยู่ในแผ่นงานที่ถูกต้อง โปรแกรมแก้ไขโค้ดจะเปิดขึ้น ใส่รหัสของคุณ.
- ในโค้ด เรากำหนดช่วง A1 ถึง A10
- ช่วงนี้กำหนดหมายเลขเซลล์ในแผ่นงาน Excel ตั้งแต่ "A1 ถึง A10"
- ถัดไป เราจะกำหนดสตริง “Guru99 บทเรียน VBA ในโค้ด
- ดังนั้น เมื่อคุณคลิกที่ปุ่มคำสั่งใน Excel มันควรจะพิมพ์ "Guru99 VBA Tutorial” ในช่วงเซลล์ “A1 ถึง A10”
ขั้นตอน 5) ในขั้นตอนถัดไป บันทึกไฟล์โค้ด จากนั้นออกจากโปรแกรมแก้ไข หากต้องการกลับไปยังไฟล์ Excel ให้คลิกไอคอนแผ่นงาน Excel ทางซ้ายสุด
ขั้นตอน 6) ในแผ่นงาน Excel คุณจะเห็นแท็บโหมดการออกแบบเปิดอยู่ ตรวจสอบให้แน่ใจว่า "ปิด" ไม่เช่นนั้นรหัสของคุณจะใช้งานไม่ได้
ขั้นตอน 7) เมื่อปิดโหมดการออกแบบ จะไม่มีไฮไลต์สีเขียวอยู่ ตอนนี้คุณสามารถคลิกที่ปุ่มคำสั่ง
ขั้นตอน 8) คลิกที่ “CommandButton1” ระบบจะพิมพ์ “Guru99 VBA Tutorial” ในช่วงเซลล์ “A1 ถึง A10”
ดาวน์โหลด Excel ที่มีโค้ดด้านบน
เหตุการณ์ทั่วไปของการควบคุม ActiveX ใน VBA
คอนโทรล ActiveX มีประสิทธิภาพสูงเนื่องจากสามารถตอบสนองต่อเหตุการณ์ต่างๆ ซึ่งเป็นการกระทำที่ผู้ใช้กระทำกับคอนโทรลนั้น แต่ละเหตุการณ์จะเรียกใช้ซับรูทีนของตัวเอง ดังนั้นปุ่มเดียวกันจึงสามารถทำงานแตกต่างกันไปขึ้นอยู่กับการกระทำของผู้ใช้ เหตุการณ์ที่พบบ่อยที่สุดมีดังต่อไปนี้
- คลิก – โค้ดจะทำงานเมื่อผู้ใช้คลิกที่ตัวควบคุม ซึ่งเป็นเหตุการณ์ที่ใช้ในตัวอย่างข้างต้น
- เปลี่ยนแปลง – ทำงานเมื่อค่าของตัวควบคุมเปลี่ยนแปลง เช่น typing ในช่องข้อความหรือการเลือกรายการในกล่องคอมโบ
- GotFocus / LostFocus – ทำงานเมื่อตัวควบคุมได้รับหรือสูญเสียการโฟกัส มีประโยชน์สำหรับการตรวจสอบความถูกต้องของข้อมูลที่ป้อนเข้า
- กดปุ่ม – จะทำงานเมื่อผู้ใช้กดปุ่มใดปุ่มหนึ่งขณะที่ตัวควบคุมทำงานอยู่
- เมาส์โมฟ – จะทำงานเมื่อตัวชี้เมาส์เคลื่อนไปอยู่เหนือตัวควบคุม
- ดับเบิลคลิก – จะทำงานเมื่อผู้ใช้ดับเบิ้ลคลิกที่ตัวควบคุม
ในการเพิ่มโค้ดสำหรับเหตุการณ์ใดๆ ให้เปิดโหมดออกแบบ คลิกขวาที่ตัวควบคุม แล้วเลือก ดู Codeจากนั้นเลือกเหตุการณ์จากรายการแบบดรอปดาวน์ที่ด้านบนของหน้าต่างโค้ด
















