แมโคร 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