300 ตัวอย่าง

ตัวบ่งชี้ความคืบหน้า

Progress Indicator

ด้านล่างเราจะดูโปรแกรมใน Excel VBA ที่สร้าง a ตัวบ่งชี้ความคืบหน้า . เราได้รักษาตัวบ่งชี้ความคืบหน้าให้เรียบง่ายที่สุด แต่ก็ดูเป็นมืออาชีพ คุณพร้อมไหม?





Userform ที่เราจะสร้างมีลักษณะดังนี้:

ตัวบ่งชี้ความคืบหน้าใน Excel VBA





ในการสร้าง Userform นี้ ให้ทำตามขั้นตอนต่อไปนี้

1. เปิด โปรแกรมแก้ไข Visual Basic . หากมองไม่เห็น Project Explorer ให้คลิก View, Project Explorer



2. คลิก แทรก แบบฟอร์มผู้ใช้ หาก Toolbox ไม่ปรากฏขึ้นโดยอัตโนมัติ ให้คลิก View, Toolbox หน้าจอของคุณควรได้รับการตั้งค่าดังนี้

การตั้งค่าหน้าจอแบบฟอร์มผู้ใช้ใน Excel VBA

Userform นี้ประกอบด้วยสามการควบคุมเท่านั้น ตัวควบคุมเฟรมและตัวควบคุมป้ายกำกับสองตัว

3. เพิ่มการควบคุมเฟรม คุณสามารถทำได้โดยคลิกที่ Frame จาก Toolbox ถัดไป คุณสามารถลากตัวควบคุมเฟรมบน Userform คุณต้องเปลี่ยนคุณสมบัติบางอย่างของตัวควบคุมเฟรมนี้ คลิกเมาส์ขวาที่ตัวควบคุมเฟรม แล้วคลิก Properties ล้างช่องคำอธิบายภาพ ตั้งค่าความสูงเป็น 24 และความกว้างเป็น 204

4. เพิ่มตัวควบคุมป้ายกำกับแรกและวางไว้ในตัวควบคุม Frame คลิกเมาส์ขวาที่ตัวควบคุมฉลาก จากนั้นคลิก Properties เปลี่ยนชื่อเป็น Bar, BackColor เป็น Highlight, ล้างช่อง Caption, ตั้งค่า Height เป็น 20 และ Width เป็น 10

5. เพิ่มตัวควบคุมเลเบลที่สองและวางไว้เหนือคอนโทรลเฟรม คลิกเมาส์ขวาที่ตัวควบคุมฉลาก จากนั้นคลิก Properties เปลี่ยนชื่อเป็นข้อความและเปลี่ยนคำบรรยายเป็น 'เสร็จสมบูรณ์ 0%'

6. เปลี่ยนคำบรรยายของ Userform เป็น Progress Indicator

เมื่อเสร็จสิ้นแล้ว ผลลัพธ์ควรสอดคล้องกับรูปภาพของ Userform ที่แสดงไว้ก่อนหน้านี้

7. วางปุ่มคำสั่งบนเวิร์กชีตของคุณและเพิ่มรหัสบรรทัดต่อไปนี้เพื่อแสดง Userform:

ส่วนตัว ซับCommandButton1_Click()

UserForm1.Show

จบ ซับ

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

8. เปิด โปรแกรมแก้ไข Visual Basic .

9. ใน Project Explorer ให้คลิกขวาที่ UserForm1 แล้วคลิก View Code

10. เลือก Userform จากรายการดรอปดาวน์ด้านซ้าย เลือกเปิดใช้งานจากรายการดรอปดาวน์ด้านขวา

11. เพิ่มบรรทัดรหัสต่อไปนี้:

ส่วนตัว ซับUserForm_Activate()

รหัส

จบ ซับ

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

12. วางโค้ดย่อยที่มีชื่อลงในโมดูล (ใน Visual Basic Editor ให้คลิก Insert, Module) นี่เป็นเพียงตัวอย่าง นี่คือที่สำหรับเพิ่มโค้ดของคุณเองเมื่อคุณต้องการใช้ตัวบ่งชี้ความคืบหน้าสำหรับมาโครของคุณเอง รหัสมีลักษณะดังนี้

ซับรหัส()

ไม่มีผมเนื่องจาก จำนวนเต็ม, NSเนื่องจาก จำนวนเต็ม, pctComplเนื่องจาก เดี่ยว

Sheet1.Cells.Clear

สำหรับผม = 1ถึง100
สำหรับเจ = 1ถึง1000
เซลล์ (i, 1).Value = j
ต่อไปNS
pctCompl = i
ความคืบหน้า pctCompl
ต่อไปผม

จบ ซับ

คำอธิบาย: อันดับแรก เราเริ่มต้นตัวแปรบางตัว ต่อไปเราล้างแผ่นที่1. เราใช้การวนซ้ำสองครั้งเพื่อแสดงค่าตั้งแต่ 1 ถึง 1,000 ใน 100 แถวแรกของเวิร์กชีต วิธีนี้จะทำให้ Excel VBA ไม่ว่างอยู่ชั่วขณะหนึ่ง และทำให้เรามีโอกาสเห็นความคืบหน้าของมาโคร ตัวแปร pctCompl (ตัวย่อสำหรับ percentCompleted) จะวัดความคืบหน้าของมาโคร สุดท้าย เราเรียกชื่อย่อยอื่นว่า Progress และส่งค่าของตัวแปร pctCompl เพื่ออัปเดต Userform ด้วยวิธีนี้เราจะเห็นความคืบหน้าของมาโคร!

13. เพิ่มย่อยชื่อความคืบหน้าอื่น รหัสมีลักษณะดังนี้:

ซับความคืบหน้า(pctComplเนื่องจาก เดี่ยว)

UserForm1.Text.Caption = pctCompl & '% เสร็จสมบูรณ์'
UserForm1.Bar.Width = pctCompl * 2

DoEvents

จบ ซับ

คำอธิบาย: บรรทัดรหัสแรกเปลี่ยนคำอธิบายของตัวควบคุมป้ายชื่อแรก บรรทัดรหัสที่สองเปลี่ยนความกว้างของตัวควบคุมป้ายชื่อที่สอง เพิ่ม DoEvents เพื่ออัปเดต Userform

14. ออกจาก Visual Basic Editor แล้วคลิกปุ่มคำสั่งบนแผ่นงาน:

ผลลัพธ์:

ตัวบ่งชี้ความคืบหน้าผล

หมายเหตุ: สำหรับมาโครนี้ เราใช้ตัวแปร i เพื่อวัดความคืบหน้า ตัวอย่างเช่น ที่แถวที่ 11 สำเร็จ 10% สิ่งนี้อาจแตกต่างกันสำหรับมาโครของคุณ เทคนิคการส่งค่าของตัวแปร pctCompl ไปยังความคืบหน้าย่อยเพื่ออัพเดต Userform ยังคงเหมือนเดิม

ฟังก์ชันวันที่และเวลาใน excel

4/11 เสร็จแล้ว! เรียนรู้เพิ่มเติมเกี่ยวกับฟอร์มผู้ใช้ >
ไปที่บทถัดไป: พิสัย



^