แมโคร Excel - UserForms
ในบางครั้งคุณอาจต้องรวบรวมข้อมูลซ้ำ ๆ จากผู้อื่น Excel VBA ช่วยให้คุณจัดการงานนี้ได้อย่างง่ายดาย -UserForm. เช่นเดียวกับแบบฟอร์มอื่น ๆ ที่คุณกรอก UserForm ทำให้เข้าใจง่ายว่าจะให้ข้อมูลอะไรบ้าง UserForm เป็นมิตรกับผู้ใช้ในลักษณะที่การควบคุมที่ให้มานั้นอธิบายได้ด้วยตนเองพร้อมด้วยคำแนะนำเพิ่มเติมหากจำเป็น
ข้อได้เปรียบที่สำคัญของ UserForm คือคุณสามารถประหยัดเวลาที่คุณใช้จ่ายไปกับสิ่งที่ต้องกรอกและวิธีการกรอกข้อมูล
การสร้าง UserForm
ในการสร้าง UserForm ให้ดำเนินการดังนี้ -
- คลิกแท็บ DEVELOPER บน Ribbon
- คลิก Visual Basic หน้าต่าง Visual Basic สำหรับเวิร์กบุ๊กจะเปิดขึ้น
- คลิกแทรก
- เลือก UserForm จากรายการแบบเลื่อนลง
UserForm จะปรากฏที่ด้านขวาของหน้าต่าง
การทำความเข้าใจ UserForm
ขยายหน้าต่าง UserForm.xlsx - UserForm1 ให้ใหญ่ที่สุด
ตอนนี้คุณอยู่ในโหมดออกแบบ คุณสามารถแทรกตัวควบคุมใน UserForm และเขียนโค้ดสำหรับการดำเนินการตามลำดับ การควบคุมมีอยู่ใน ToolBox คุณสมบัติของ UserForm อยู่ในหน้าต่างคุณสมบัติ UserForm1 (คำอธิบายของ UserForm) มีให้ภายใต้ฟอร์มใน Projects Explorer
- เปลี่ยนคำบรรยายของ UserForm เป็น Project Report - รายวันในหน้าต่างคุณสมบัติ
- เปลี่ยนชื่อของ UserForm เป็น ProjectReport
การเปลี่ยนแปลงจะแสดงใน UserForm คุณสมบัติและตัวสำรวจโครงการ
การควบคุมในกล่องเครื่องมือ
UserForm จะมีส่วนประกอบที่แตกต่างกัน เมื่อคุณคลิกที่ส่วนประกอบใด ๆ คุณจะได้รับคำแนะนำเกี่ยวกับสิ่งที่และวิธีการให้ข้อมูลหรือคุณจะได้รับตัวเลือก (ตัวเลือก) ให้เลือก ทั้งหมดนี้มีให้โดยใช้ตัวควบคุม ActiveX ใน ToolBox ของ UserForm
Excel มีตัวควบคุมสองประเภท - ตัวควบคุมฟอร์มและตัวควบคุม ActiveX คุณต้องเข้าใจความแตกต่างระหว่างการควบคุมทั้งสองประเภทนี้
การควบคุมแบบฟอร์ม
ตัวควบคุมฟอร์มคือตัวควบคุมดั้งเดิมของ Excel ที่เข้ากันได้กับ Excel เวอร์ชันก่อนหน้าโดยเริ่มจาก Excel เวอร์ชัน 5.0 ตัวควบคุมฟอร์มยังได้รับการออกแบบมาเพื่อใช้กับแผ่นงานแมโคร XLM
คุณสามารถเรียกใช้แมโครโดยใช้ตัวควบคุมฟอร์ม คุณสามารถกำหนดแมโครที่มีอยู่ให้กับตัวควบคุมหรือเขียนหรือบันทึกแมโครใหม่ เมื่อคลิกตัวควบคุมแมโคร คุณได้เรียนรู้วิธีแทรกปุ่มคำสั่งจากตัวควบคุมฟอร์มในแผ่นงานเพื่อเรียกใช้แมโครแล้ว อย่างไรก็ตามไม่สามารถเพิ่มการควบคุมเหล่านี้ลงใน UserForm ได้
ตัวควบคุม ActiveX
ตัวควบคุม ActiveX สามารถใช้กับ VBA UserForms ตัวควบคุม ActiveX มีคุณสมบัติมากมายที่คุณสามารถใช้เพื่อปรับแต่งลักษณะพฤติกรรมฟอนต์และลักษณะอื่น ๆ
คุณมีตัวควบคุม ActiveX ต่อไปนี้ใน UserForm ToolBox -
- Pointer
- Label
- TextBox
- ComboBox
- ListBox
- CheckBox
- OptionButton
- Frame
- ToggleButton
- CommandButton
- TabStrip
- MultiPage
- ScrollBar
- SpinButton
- Image
นอกเหนือจากการควบคุมเหล่านี้ Visual Basic ยังมีฟังก์ชัน MsgBox ที่สามารถใช้เพื่อแสดงข้อความและ / หรือแจ้งให้ผู้ใช้ดำเนินการ
ในสองสามส่วนถัดไปคุณจะเข้าใจการควบคุมและ MsgBox เหล่านี้ จากนั้นคุณจะสามารถเลือกได้ว่าจะใช้การควบคุมใดในการออกแบบ UserForm ของคุณ
ฉลาก
คุณสามารถใช้ป้ายกำกับเพื่อจุดประสงค์ในการระบุตัวตนโดยการแสดงข้อความอธิบายเช่นชื่อเรื่องคำอธิบายภาพและ / หรือคำแนะนำสั้น ๆ
Example
กล่องข้อความ
คุณสามารถใช้กล่องข้อความที่เป็นกล่องสี่เหลี่ยมเพื่อพิมพ์ดูหรือแก้ไขข้อความ คุณยังสามารถใช้กล่องข้อความเป็นช่องข้อความแบบคงที่ซึ่งนำเสนอข้อมูลแบบอ่านอย่างเดียว
Example
กล่องรายการ
คุณสามารถใช้กล่องรายการเพื่อแสดงรายการข้อความตั้งแต่หนึ่งรายการขึ้นไปซึ่งผู้ใช้สามารถเลือกได้ ใช้กล่องรายการเพื่อแสดงตัวเลือกจำนวนมากที่แตกต่างกันไปตามจำนวนหรือเนื้อหา
- แทรก ListBox ใน UserForm
- คลิกที่ ListBox
- พิมพ์ ProjectCodes สำหรับชื่อในหน้าต่าง Properties ของ ListBox
กล่องรายการมีสามประเภท -
Single-selection List box- กล่องรายการแบบเลือกเพียงรายการเดียวเปิดใช้งานทางเลือกเดียวเท่านั้น ในกรณีนี้กล่องรายการจะมีลักษณะเป็นกลุ่มปุ่มตัวเลือกยกเว้นว่ากล่องรายการสามารถจัดการรายการจำนวนมากได้อย่างมีประสิทธิภาพมากขึ้น
Multiple selection List Box - กล่องรายการแบบเลือกได้หลายรายการเปิดใช้งานตัวเลือกเดียวหรือตัวเลือกที่อยู่ติดกัน (ติดกัน)
Extended-selection List Box - กล่องรายการการเลือกเพิ่มเติมช่วยให้สามารถเลือกได้ทางเลือกหนึ่งทางเลือกที่ต่อเนื่องกันและตัวเลือกที่ไม่ติดกัน (หรือไม่ปะติดปะต่อกัน)
คุณสามารถเลือกกล่องรายการประเภทใดประเภทหนึ่งเหล่านี้ได้จากหน้าต่างคุณสมบัติ
- คลิกขวาที่ UserForm
- เลือกดูรหัสจากรายการแบบเลื่อนลง หน้าต่างรหัสของ UserForm จะเปิดขึ้น
- คลิกเริ่มต้นในกล่องด้านขวาบนของหน้าต่างรหัส
- พิมพ์สิ่งต่อไปนี้ภายใต้ Private Sub UserForm_Initialize ()
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- คลิกแท็บ Run บน Ribbon
- เลือกเรียกใช้ Sub / UserForm จากรายการดรอปดาวน์
ถัดไปคุณสามารถเขียนโค้ดสำหรับการดำเนินการในการเลือกรายการในรายการ มิฉะนั้นคุณสามารถแสดงข้อความที่เลือกซึ่งเป็นกรณีสำหรับการกรอกรหัสโครงการในรายงาน
ComboBox
คุณสามารถใช้ได้ ComboBoxที่รวมกล่องข้อความเข้ากับกล่องรายการเพื่อสร้างกล่องรายการแบบหล่นลง กล่องคำสั่งผสมมีขนาดกะทัดรัดกว่ากล่องรายการ แต่ต้องการให้ผู้ใช้คลิกลูกศรลงเพื่อแสดงรายการ ใช้กล่องคำสั่งผสมเพื่อเลือกเพียงรายการเดียวจากรายการ
- ใส่ ComboBox ใน UserForm
- คลิก ComboBox
- พิมพ์ ProjectCodes2 สำหรับชื่อในหน้าต่างคุณสมบัติของ ComboBox
- คลิกขวาที่ UserForm
- เลือกดูรหัสจากรายการแบบเลื่อนลง
- หน้าต่างรหัสของ UserForm จะเปิดขึ้น
พิมพ์ดังต่อไปนี้ที่แสดงด้านล่าง
ProjectCodes2.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- คลิกแท็บ Run บน Ribbon
- เลือกเรียกใช้ Sub / UserForm จากรายการดรอปดาวน์
คลิกลูกศรลงเพื่อแสดงรายการ
คลิกที่รายการที่ต้องการพูด Project2016-5 ตัวเลือกที่เลือกจะแสดงในกล่องคำสั่งผสม
CheckBox
คุณสามารถใช้กล่องกาเครื่องหมายเพื่อเลือกตัวเลือกอย่างน้อยหนึ่งตัวเลือกที่แสดงโดยคลิกในกล่อง ตัวเลือกจะมีป้ายกำกับและคุณสามารถเห็นภาพได้อย่างชัดเจนว่าตัวเลือกใดถูกเลือก
กล่องกาเครื่องหมายสามารถมีได้สองสถานะ -
- เลือก (เปิดอยู่) แสดงด้วยเครื่องหมายถูกในช่อง
- ล้าง (ปิด) แสดงด้วยกล่องใส
คุณสามารถใช้กล่องกาเครื่องหมายสำหรับการเลือกตัวเลือกในกล่องคำสั่งผสมเพื่อประหยัดพื้นที่ ในกรณีนี้กล่องกาเครื่องหมายสามารถมีสถานะที่สามได้เช่นกัน -
ผสมหมายถึงการรวมกันของสถานะเปิดและปิดแสดงด้วยจุดสีดำในกล่อง สิ่งนี้จะปรากฏขึ้นเพื่อระบุการเลือกหลายรายการในกล่องคำสั่งผสมพร้อมกล่องกาเครื่องหมาย
แทรกช่องทำเครื่องหมายใน UserForm ดังที่แสดงด้านล่าง
- คลิกแท็บ Run บน Ribbon
- เลือกเรียกใช้ Sub / UserForm จากรายการดรอปดาวน์
- คลิกในช่องสำหรับตัวเลือกที่คุณเลือก
ปุ่ม OptionButton
คุณสามารถใช้ปุ่มตัวเลือกหรือที่เรียกว่าปุ่มตัวเลือกเพื่อทำการเลือกเพียงตัวเลือกเดียวภายในชุดตัวเลือกที่ไม่ซ้ำกัน โดยปกติปุ่มตัวเลือกจะอยู่ในกล่องกลุ่มหรือกรอบ
ปุ่มตัวเลือกจะแสดงเป็นวงกลมเล็ก ๆ ปุ่มตัวเลือกสามารถมีหนึ่งในสองสถานะต่อไปนี้ -
- เลือก (เปิดอยู่) แสดงด้วยจุดในวงกลม
- ล้าง (ปิด) แสดงด้วยช่องว่าง
กรอบ
คุณสามารถใช้ตัวควบคุมเฟรมหรือที่เรียกว่ากล่องกลุ่มเพื่อจัดกลุ่มตัวควบคุมที่เกี่ยวข้องเป็นหน่วยภาพเดียว โดยปกติปุ่มตัวเลือกกล่องกาเครื่องหมายหรือเนื้อหาที่เกี่ยวข้องอย่างใกล้ชิดจะถูกจัดกลุ่มไว้ในตัวควบคุมเฟรม
ตัวควบคุมเฟรมแสดงโดยวัตถุทรงสี่เหลี่ยมที่มีป้ายกำกับที่เป็นทางเลือก
แทรกกรอบที่มีคำบรรยาย "ทางเลือก"
แทรกปุ่มตัวเลือกสองปุ่มพร้อมคำบรรยาย“ ใช่” และ“ ไม่ใช่” ในตัวควบคุมเฟรม ตัวเลือกใช่และไม่ใช่เป็นเอกสิทธิ์ร่วมกัน
- คลิกแท็บ Run บน Ribbon
- เลือกเรียกใช้ Sub / UserForm จากรายการดรอปดาวน์
- คลิกที่ตัวเลือกที่คุณเลือก
ToggleButton
คุณสามารถใช้ปุ่มสลับเพื่อระบุสถานะเช่นใช่หรือไม่ใช่หรือโหมดเช่นเปิดหรือปิด ปุ่มจะสลับระหว่างสถานะเปิดใช้งานและสถานะปิดใช้งานเมื่อมีการคลิก
แทรกปุ่มสลับบน UserForm ดังที่แสดงด้านล่าง -
คลิกแท็บ Run บน Ribbon
เลือกเรียกใช้ Sub / UserForm จากรายการดรอปดาวน์ ปุ่มสลับจะอยู่ในสถานะเปิดใช้งานตามค่าเริ่มต้น
คลิกปุ่มสลับ ปุ่มสลับจะถูกปิดใช้งาน
หากคุณคลิกปุ่มสลับอีกครั้งปุ่มจะเปิดใช้งาน
CommandButton
คุณสามารถใช้ปุ่มคำสั่งเพื่อเรียกใช้แมโครที่ดำเนินการบางอย่างเมื่อผู้ใช้คลิกที่มัน คุณได้เรียนรู้วิธีใช้ปุ่มคำสั่งบนแผ่นงานเพื่อเรียกใช้แมโครแล้ว
ปุ่มคำสั่งเรียกอีกอย่างว่าปุ่มกด แทรกปุ่มคำสั่งบน UserForm ดังที่แสดงด้านล่าง -
- คลิกขวาที่ปุ่มคำสั่ง
- พิมพ์รหัสต่อไปนี้ใน Commandbutton1_click ย่อย ()
ProjectCodes2.DropDown
- คลิกแท็บ Run บน Ribbon
- เลือกเรียกใช้ Sub / UserForm จากรายการดรอปดาวน์
คลิกปุ่มคำสั่ง รายการแบบหล่นลงของกล่องคำสั่งผสมจะเปิดขึ้นเนื่องจากเป็นการกระทำที่คุณเขียนไว้ในโค้ด
TabStrip
คุณสามารถแทรกแถบแท็บที่คล้ายกับแท็บ Excel บน UserForm
แถบเลื่อน
คุณสามารถใช้แถบเลื่อนเพื่อเลื่อนดูช่วงของค่าต่างๆโดยคลิกที่ลูกศรเลื่อนหรือโดยการลากกล่องเลื่อน
แทรกแถบเลื่อนบน UserForm โดยวาดตรงตำแหน่งที่ต้องการและปรับความยาวของแถบเลื่อน
- คลิกขวาที่แถบเลื่อน
- เลือกดูรหัสจากรายการแบบเลื่อนลง หน้าต่างรหัสจะเปิดขึ้น
- เพิ่มบรรทัดต่อไปนี้ใต้ ScrollBar1_Scroll ย่อย ()
TextBox2.Text = "Scrolling Values"
- คลิกแท็บ Run บน Ribbon
- เลือกเรียกใช้ Sub / UserForm จากรายการดรอปดาวน์
ลากกล่องเลื่อน ข้อความ - ค่าการเลื่อนจะแสดงในกล่องข้อความตามที่คุณระบุเป็นการดำเนินการสำหรับการเลื่อนแถบเลื่อน
MsgBox ()
คุณสามารถใช้ฟังก์ชัน MsgBox () เพื่อแสดงข้อความเมื่อคุณคลิกที่บางสิ่ง อาจเป็นแนวทางหรือข้อมูลบางอย่างหรือคำเตือนหรือการแจ้งเตือนข้อผิดพลาด
ตัวอย่างเช่นคุณสามารถแสดงข้อความที่มีการเลื่อนค่าเมื่อคุณเริ่มเลื่อนกล่องเลื่อน
ไอคอนกล่องข้อความจะปรากฏขึ้น
คุณสามารถใช้ไอคอนกล่องข้อความที่แสดงภาพข้อความเฉพาะ คุณมีไอคอนกล่องข้อความหลายไอคอนเพื่อให้เหมาะกับวัตถุประสงค์ของคุณ -
- พิมพ์รหัสต่อไปนี้ภายใต้ ScrollBar1_scroll
MsgBox "Select Ok or Cancel", vbOKCancel, "OK - Cancel Message"
MsgBox "It's an Error!", vbCritical, "Run time result"
MsgBox "Why this value", vbQuestion, "Run time result"
MsgBox "Value Been for a Long Time", vbInformation, "Run time result"
MsgBox "Oh Is it so", vbExclamation, "Run time result"
- คลิกแท็บ Run บน Ribbon
- เลือกเรียกใช้ Sub / UserForm จากรายการดรอปดาวน์
- ลากกล่องเลื่อน
คุณจะได้รับกล่องข้อความต่อไปนี้ตามลำดับ
การออกแบบ UserForm
ตอนนี้คุณมีความเข้าใจเกี่ยวกับการควบคุมต่างๆที่คุณสามารถใช้กับ UserForm ได้แล้ว เลือกตัวควบคุมจัดกลุ่มหากจำเป็นและจัดเรียงบน UserForm ตามลำดับที่มีความหมาย เขียนการดำเนินการที่จำเป็นเป็นรหัสที่สอดคล้องกับการควบคุมที่เกี่ยวข้อง
อ้างถึงบทช่วยสอน VBA ในไลบรารีบทช่วยสอนนี้สำหรับตัวอย่างของ UserForm