ส่วนควบคุม VBA ใน Excel: ฟอร์มและ ActiveX

⚡ สรุปอย่างชาญฉลาด

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

  • 🧩 ส่วนควบคุม GUI: ปุ่ม กล่องคำสั่งผสม กล่องทำเครื่องหมาย และป้ายกำกับ คือส่วนประกอบของอินเทอร์เฟซที่ผู้ใช้โต้ตอบด้วยในเวิร์กชีต
  • 🗂️ การควบคุมแบบฟอร์ม: การควบคุมแบบง่ายๆ ที่เรียกใช้มาโครที่กำหนดไว้เพียงตัวเดียว และใช้งานได้ทั้งสองแบบ Windows และโปรแกรม Excel สำหรับ Mac
  • ⚙️ ส่วนควบคุม ActiveX: ตัวควบคุมที่สมบูรณ์ยิ่งขึ้น พร้อมคุณสมบัติและเหตุการณ์มากมาย เขียนด้วยภาษา VBA พร้อมใช้งานแล้ว Windows ใช้ได้เฉพาะไฟล์ Excel เท่านั้น
  • 🔧 วิชาบังคับก่อน: เปิดใช้งานแถบเครื่องมือสำหรับนักพัฒนา และบันทึกไฟล์เป็นเวิร์กบุ๊กที่เปิดใช้งานมาโครก่อนที่จะเพิ่มส่วนควบคุม
  • ▶️ ตัวอย่าง ActiveX: ปุ่มคำสั่งจะพิมพ์ข้อความ Guru99 บทเรียน VBA การเขียนข้อมูลลงในช่วงเซลล์ A1 ถึง A10 เมื่อคลิก
  • 🖱️ กิจกรรม: ส่วนควบคุม ActiveX ตอบสนองต่อเหตุการณ์ต่างๆ เช่น Click, Change และ GotFocus ผ่านทางซับรูทีนเฉพาะ

การควบคุม VBA ใน Excel

การควบคุม 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

  1. คลิกที่แท็บนักพัฒนา
  2. คลิกที่ปุ่มแทรกแบบเลื่อนลง

คุณจะได้รับแผงดร็อปดาวน์ดังต่อไปนี้

ตัวควบคุมฟอร์ม VBA/GUI ใน Excel

หากคุณวางเมาส์ไว้เหนือตัวควบคุมฟอร์ม VBA ชื่อของตัวควบคุมจะปรากฏดังที่แสดงด้านล่าง

ตัวควบคุมฟอร์ม VBA/GUI ใน Excel

การเพิ่มการควบคุม GUI ให้กับสเปรดชีต

ตอนนี้เราจะเพิ่มปุ่มคำสั่งลงในสมุดงานของเรา เพื่อที่เราต้องทำ

  • คลิกที่แทรกแบบเลื่อนลง
  • คลิกที่ปุ่มคำสั่ง (ActiveX Control) ดังภาพด้านบน
  • ลากและวาดปุ่มบนแผ่นงาน

การเพิ่มการควบคุม GUI ให้กับสเปรดชีต

การตั้งค่าคุณสมบัติการควบคุม GUI

ตอนนี้เราจะตั้งค่าคำอธิบายของปุ่มให้มีคำอธิบายมากขึ้น

การตั้งค่าคุณสมบัติการควบคุม GUI

  1. คลิกขวาที่ปุ่มเท่ากับที่เราเพิ่งสร้างขึ้น
  2. เลือกเมนูคุณสมบัติ
  3. คุณจะได้รับหน้าต่างคุณสมบัติต่อไปนี้

การตั้งค่าคุณสมบัติการควบคุม GUI

  • ตั้งค่าคุณสมบัติชื่อเป็นbtnButton คุณสมบัติชื่อถูกใช้เพื่อระบุตัวควบคุมในหน้าต่างรหัส btn เป็นคำนำหน้าสำหรับปุ่ม
  • ตั้งค่าคุณสมบัติคำอธิบายภาพเป็นคลิกฉัน ข้อความในคุณสมบัติคำอธิบายภาพคือสิ่งที่ผู้ใช้จะเห็นบนปุ่ม

ปิดหน้าต่างเมื่อคุณทำเสร็จแล้ว

คุณจะได้รับผลลัพธ์ดังต่อไปนี้

การตั้งค่าคุณสมบัติการควบคุม GUI

ความแตกต่างระหว่างตัวควบคุมแบบฟอร์มและตัวควบคุม 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 จากนั้นเลือกตัวเลือกปุ่มคำสั่งจากนั้น

ใช้ตัวควบคุม ActiveX ใน VBA

ขั้นตอน 2) หากต้องการแทรก "clickcommandbutton1" ให้ลากเคอร์เซอร์เมาส์ไปที่แผ่นงาน Excel

ใช้ตัวควบคุม ActiveX ใน VBA

ขั้นตอน 3) จากนั้นคลิกขวาที่ปุ่มคำสั่ง แล้วเลือกตัวเลือก “ดู” Code"

ใช้ตัวควบคุม ActiveX ใน VBA

ขั้นตอน 4) ตรวจสอบว่าคุณอยู่ในแผ่นงานที่ถูกต้อง โปรแกรมแก้ไขโค้ดจะเปิดขึ้น ใส่รหัสของคุณ.

  • ในโค้ด เรากำหนดช่วง A1 ถึง A10
  • ช่วงนี้กำหนดหมายเลขเซลล์ในแผ่นงาน Excel ตั้งแต่ "A1 ถึง A10"
  • ถัดไป เราจะกำหนดสตริง “Guru99 บทเรียน VBA ในโค้ด
  • ดังนั้น เมื่อคุณคลิกที่ปุ่มคำสั่งใน Excel มันควรจะพิมพ์ "Guru99 VBA Tutorial” ในช่วงเซลล์ “A1 ถึง A10”

ใช้ตัวควบคุม ActiveX ใน VBA

ขั้นตอน 5) ในขั้นตอนถัดไป บันทึกไฟล์โค้ด จากนั้นออกจากโปรแกรมแก้ไข หากต้องการกลับไปยังไฟล์ Excel ให้คลิกไอคอนแผ่นงาน Excel ใช้ตัวควบคุม ActiveX ใน VBA ทางซ้ายสุด

ใช้ตัวควบคุม ActiveX ใน VBA

ขั้นตอน 6) ในแผ่นงาน Excel คุณจะเห็นแท็บโหมดการออกแบบเปิดอยู่ ตรวจสอบให้แน่ใจว่า "ปิด" ไม่เช่นนั้นรหัสของคุณจะใช้งานไม่ได้

ใช้ตัวควบคุม ActiveX ใน VBA

ขั้นตอน 7) เมื่อปิดโหมดการออกแบบ จะไม่มีไฮไลต์สีเขียวอยู่ ตอนนี้คุณสามารถคลิกที่ปุ่มคำสั่ง

ใช้ตัวควบคุม ActiveX ใน VBA

ขั้นตอน 8) คลิกที่ “CommandButton1” ระบบจะพิมพ์ “Guru99 VBA Tutorial” ในช่วงเซลล์ “A1 ถึง A10”

ใช้ตัวควบคุม ActiveX ใน VBA

ดาวน์โหลด Excel ที่มีโค้ดด้านบน

ดาวน์โหลดไฟล์ Excel ด้านบน Code

เหตุการณ์ทั่วไปของการควบคุม ActiveX ใน VBA

คอนโทรล ActiveX มีประสิทธิภาพสูงเนื่องจากสามารถตอบสนองต่อเหตุการณ์ต่างๆ ซึ่งเป็นการกระทำที่ผู้ใช้กระทำกับคอนโทรลนั้น แต่ละเหตุการณ์จะเรียกใช้ซับรูทีนของตัวเอง ดังนั้นปุ่มเดียวกันจึงสามารถทำงานแตกต่างกันไปขึ้นอยู่กับการกระทำของผู้ใช้ เหตุการณ์ที่พบบ่อยที่สุดมีดังต่อไปนี้

  • คลิก – โค้ดจะทำงานเมื่อผู้ใช้คลิกที่ตัวควบคุม ซึ่งเป็นเหตุการณ์ที่ใช้ในตัวอย่างข้างต้น
  • เปลี่ยนแปลง – ทำงานเมื่อค่าของตัวควบคุมเปลี่ยนแปลง เช่น typing ในช่องข้อความหรือการเลือกรายการในกล่องคอมโบ
  • GotFocus / LostFocus – ทำงานเมื่อตัวควบคุมได้รับหรือสูญเสียการโฟกัส มีประโยชน์สำหรับการตรวจสอบความถูกต้องของข้อมูลที่ป้อนเข้า
  • กดปุ่ม – จะทำงานเมื่อผู้ใช้กดปุ่มใดปุ่มหนึ่งขณะที่ตัวควบคุมทำงานอยู่
  • เมาส์โมฟ – จะทำงานเมื่อตัวชี้เมาส์เคลื่อนไปอยู่เหนือตัวควบคุม
  • ดับเบิลคลิก – จะทำงานเมื่อผู้ใช้ดับเบิ้ลคลิกที่ตัวควบคุม

ในการเพิ่มโค้ดสำหรับเหตุการณ์ใดๆ ให้เปิดโหมดออกแบบ คลิกขวาที่ตัวควบคุม แล้วเลือก ดู Codeจากนั้นเลือกเหตุการณ์จากรายการแบบดรอปดาวน์ที่ด้านบนของหน้าต่างโค้ด

คำถามที่พบบ่อย

ตัวควบคุมฟอร์มจะเรียกใช้มาโครเดียวที่คุณกำหนดให้กับมัน และทำงานบน... Windows และ Mac ตัวควบคุม ActiveX ถูกเขียนโปรแกรมด้วย VBA มีคุณสมบัติและเหตุการณ์มากมาย และสามารถใช้งานได้บน Windows ใช้ได้เฉพาะไฟล์ Excel เท่านั้น

เมนูแทรก (Insert) สำหรับฟอร์มและตัวควบคุม ActiveX อยู่บนแถบเครื่องมือสำหรับนักพัฒนา (Developer ribbon) ซึ่งถูกซ่อนไว้โดยค่าเริ่มต้น ให้เปิดใช้งานโดยไปที่ ไฟล์ (File) > ตัวเลือก (Options) > ปรับแต่งแถบเครื่องมือ (Customize Ribbon) จากนั้นเลือก นักพัฒนา (Developer) เพื่อให้ตัวควบคุมและตัวแก้ไข VBA ปรากฏขึ้น

ปุ่มอาจยังอยู่ในโหมดออกแบบ ซึ่งแสดงโดยไฮไลต์สีเขียวในแท็บนักพัฒนา ปิดโหมดออกแบบเพื่อให้ตัวควบคุมทำงานตามโค้ดเหตุการณ์ นอกจากนี้ ต้องบันทึกเวิร์กบุ๊กเป็นไฟล์ .xlsm ที่เปิดใช้งานมาโครด้วย

ใช่แล้ว ผู้ช่วย AI อย่างเช่น Copilot จะเขียนซับรูทีน Click หรือ Change จากคำอธิบายธรรมดาๆ เช่น ล้างช่วงเมื่อกดปุ่ม นักพัฒนาจะคัดลอกไปวางในหน้าต่างโค้ดของคอนโทรลแล้วทดสอบ

ใช่แล้ว เพียงแค่คุณอธิบายข้อมูลที่คุณต้องการป้อน ระบบ AI จะแนะนำตัวควบคุมที่เหมาะสม เช่น คอมโบ้บ็อกซ์สำหรับรายการที่กำหนดไว้ หรือ เชคบ็อกซ์สำหรับค่าใช่หรือไม่ใช่ พร้อมทั้งอธิบายวิธีการตั้งค่าคุณสมบัติหลักต่างๆ

สรุปโพสต์นี้ด้วย: