/ / מחוון התקדמות ב - VBA של

מחוון התקדמות ב - VBA של

להלן נבחן תוכנית ב Excel VBA זה יוצר - מחוון התקדמות. שמנו את מחוון ההתקדמות פשוט ככל האפשר, אבל זה נראה מקצועי, האם אתה מוכן?

Userform שאנחנו הולכים ליצור נראה כדלקמן:

מחוון התקדמות ב - VBA של

כדי ליצור Userform זה, בצע את השלבים הבאים.

1. פתח את עורך Visual Basic. אם סייר הפרויקטים אינו גלוי, לחץ על תצוגה, סייר פרויקט.

.2 לחץ על הוספה, Userform. אם תיבת הכלים אינה מופיעה באופן אוטומטי, לחץ על תצוגה, תיבת כלים. המסך שלך צריך להיות מוגדר כמו להלן.

הגדרת מסך ב - Excel

Userform זה מורכב רק משלושה פקדים. בקרת מסגרת ושני פקדי תוויות.

.3 הוסיפו את בקרת המסגרת. אתה יכול לעשות זאת על ידי לחיצה על מסגרת מתוך ארגז הכלים. לאחר מכן, ניתן לגרור בקרת מסגרת ב- Userform. אתה צריך לשנות כמה מאפיינים של שליטה זו מסגרת. לחץ באמצעות לחצן העכבר הימני על לוח הבקרה, ולאחר מכן לחץ על מאפיינים. רוקן את שדה הכיתוב, קבע את הגובה ל -24 ואת הרוחב ל -204.

4. הוסף את בקרת התווית הראשונה והנח אותה בפקד המסגרת. לחץ באמצעות לחצן העכבר הימני על בקרת התווית ולאחר מכן לחץ על מאפיינים. שנה את השם ל Bar, BackColor כדי להאיר, לרוקן את שדה הכיתוב, להגדיר את גובה ל 20 ו רוחב ל 10.

5. הוסף את בקרת התווית השנייה והנח אותה מעל לפקד הבקרה. לחץ באמצעות לחצן העכבר הימני על בקרת התווית ולאחר מכן לחץ על מאפיינים. שנה את השם לטקסט ושנה את הכיתוב ל "0% הושלם".

6. שנה את הכיתוב של Userform כדי מחוון התקדמות.

לאחר השלמת פעולה זו, התוצאה צריכה להיות עקבית עם התמונה של Userform שמוצג קודם לכן.

7. הנח לחצן פקודה בגליון העבודה והוסף את שורת הקוד הבאה כדי להציג את Userform:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

אם עברתם את Userform האחרדוגמאות באתר זה, אתה יודע שזה הזמן ליצור את תת משתמש UserForm_Initialize. Sub זה פועל באופן אוטומטי בכל פעם ש - Userform נטען. לכן, כאשר אתה משתמש בשיטת הצג עבור Userform, הקוד יבוצע באופן אוטומטי. במקום תת-המשתמש SubForm_Initialize, אנו יוצרים את תת-המשתמש SubForm_Activate. באמצעות המשנה הזו, Excel VBA יכול לעדכן את Userform כדי להציג את התקדמות המאקרו.

8. פתח את עורך Visual Basic.

9. בסייר הפרויקט, לחץ באמצעות לחצן העכבר הימני על UserForm1 ולאחר מכן לחץ על הצג קוד.

10. בחר באפשרות Userform מהרשימה הנפתחת. בחר באפשרות הפעל מהרשימה הנפתחת.

11. הוסף את שורת הקוד הבאה:

Private Sub UserForm_Activate()

code

End Sub

הסבר: זה משנה קורא תת משנה אחרת בשם אנחנו הולכים ליצור תוך דקה. מבולבלת? אתה יכול לעבור את הפרק שלנו ואת הפרק הבא כדי ללמוד עוד על תת. אם אתה ממהר, פשוט לבצע את השלבים הבאים ואתה תהיה בסדר.

12. הצב את הקוד בשם משנה לתוך מודול (בעורך Visual Basic, לחץ על הוספה, מודול). זוהי רק דוגמה. זהו המקום להוסיף קוד משלך כאשר ברצונך להשתמש במדד התקדמות זה עבור המאקרו שלך. הקוד נראה כך.

Sub code()

Dim i As Integer, j As Integer, pctCompl As Single

Sheet1.Cells.Clear

For i = 1 To 100
    For j = 1 To 1000
        Cells(i, 1).Value = j
    Next j
    pctCompl = i
    progress pctCompl
Next i

End Sub

הסבר: ראשית, אנחנו לאתחל כמה משתנים. לאחר מכן, נקה את גיליון 1. אנו משתמשים בלולאה כפולה כדי להציג את הערכים מ 1 עד 1000 ב 100 שורות הראשונות של גליון העבודה. זה ישמור Excel VBA עסוק במשך זמן מה נותן לנו את ההזדמנות לראות את ההתקדמות של המאקרו. המשתנה pctCompl (קיצור עבור אחוזים הושלם) מודד את ההתקדמות של המאקרו. לבסוף, אנו קוראים עוד תת בשם התקדמות ולהעביר את הערך של המשתנה pctCompl לעדכן את Userform. בדרך זו אנו יכולים לראות את ההתקדמות של המאקרו!

13. הוסף עוד תת בשם התקדמות. הקוד נראה כך:

Sub progress(pctCompl As Single)

UserForm1.Text.Caption = pctCompl & "% Completed"
UserForm1.Bar.Width = pctCompl * 2

DoEvents

End Sub

הסבר: קוד הקוד הראשון משנה את הכיתוב של בקרת התווית הראשונה. שורת הקוד השנייה משנה את רוחב הפקד השני של התווית. הוסף DoEvents לעדכון Userform.

14. צא מעורך Visual Basic ולחץ על לחצן הפקודה בגיליון:

תוצאה:

תוצאה של מחוון התקדמות

הערה: עבור מאקרו זה, השתמשנו במשתנה i כדי למדוד את ההתקדמות. לדוגמה, בשורה 11, 10% הושלמה. זה עשוי להיות שונה עבור המאקרו שלך. הטכניקה של העברת הערך של המשתנה pctCompl כדי התקדמות תת לעדכן את Userform נשאר זהה.

קרא גם: