חלון מיידי של Excel VBA - 5 דרכים נהדרות לשימוש בו!

'חלון מיידי' יכול להיות כלי שימושי לשימוש בעבודה עם VBA ב- Excel.

החלון המיידי מאפשר לך לבצע דברים במהירות כמו:

  • קבל מידע על קבצי Excel (כגון ספירת גיליונות בחוברת עבודה או שם חוברת העבודה)
  • קבל מידע מהיר על Debug.Print
  • הפעל שורת קוד תוך שניות
  • הפעל מאקרו (או התקשר לפונקציה)
  • קבל מידע על משתנים (או הגדר את הערך או המשתנים)

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

במדריך זה אכסה את כל מה שאתה צריך לדעת על החלון המיידי וכיצד להשתמש בו בצורה הטובה ביותר (הסבר עם דוגמאות).

בואו נתחיל!

מהו חלון מיידי ב- Excel VBA?

חלון מיידי הוא חלק מעורך VB שבו אתה יכול להשתמש בכמה דברים מהירים.

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

חלון מיידי עושה הרבה יותר (כפי שתראה בהמשך הדרכה זו). אבל מלכתחילה, בואו רק נחשוב על חלון מיידי ככלי שיעזור לכם להאיץ את העבודה שלכם ב- Excel VBA.

היכן למצוא את החלון המיידי?

כשאתה פותח את Excel VB-Editor, ייתכן שאתה כבר רואה את החלון המיידי כחלק מעורך VB. ואם אינך רואה אותו כבר, תוכל לגרום לו להופיע בקלות.

להלן השלבים לפתיחת עורך VB ולהפוך את החלון המיידי לגלוי:

  1. לחץ על הכרטיסייה 'מפתח' ברצועת האקסל (אם אינך רואה את כרטיסיית המפתחים, לחץ כאן כדי ללמוד כיצד להשיג אותה)
  2. בקבוצת הקוד, לחץ על 'Visual Basic'. פעולה זו תפתח את עורך VB
  3. בעורך VB, לחץ על האפשרות 'תצוגה' בתפריט
  4. לחץ על חלון מיידי. זה יגרום לחלון המיידי להופיע בעורך VB.

אם נוח לך יותר עם קיצורי דרך, להלן כמה כדי להאיץ את השלבים שלעיל:

  • כדי לפתוח את עורך VB - ALT + F11 (זה עובד גם אם אין לך את הכרטיסייה מפתחים בסרט)
  • להצגת החלון המיידי - Control + G. (השתמש בזה עורך VB פתוח)

דוגמאות לשימוש בחלון מיידי ב- Excel VBA

עכשיו שאתה יודע היכן למצוא את החלון המיידי, בואו נראה כמה דוגמאות מדהימות בהן תוכלו להשתמש בו בעבודה עם Excel VBA.

קבל מידע על הקבצים/חוברות העבודה

'החלון המיידי' הוא מקום שבו תוכל לשאול שאלות על חוברות העבודה והוא ייתן לך את התשובה מיד.

לדוגמה, נניח שיש לך חוברת עבודה ואתה רוצה לדעת כמה גיליונות יש בחוברת העבודה, תוכל להקליד את הקוד להלן בחלון המיידי וללחוץ על מקש enter.

? ActiveWorkbook.Sheets.Count

זה יגיד לך באופן מיידי את מספר הגיליונות הכולל בחוברת העבודה הפעילה.

זה יכול להיות שימושי כאשר יש לך חוברת עבודה הכוללת הרבה גיליונות ואינך יכולה לספור אותה באופן ידני (או לא רוצה), או כשיש לך חוברת עבודה שבה יש גיליונות מוסתרים ואתה רוצה לדעת את הסכום הכולל לספור.

ה ? (סימן שאלה) אמור לשמש לפני השאילתה, כך ש- VBA תוכל להבין שאתה שואל שאלה. אם אינך משתמש בסימן שאלה זה, חלון מיידי לא יתן לך את הפירוט/התשובה.

כעת, זוהי דוגמה פשוטה מאוד שבה חלון מיידי נותן לך מידע וחוסך זמן.

להלן מספר דוגמאות נוספות:

כדי לקבל את שם חוברת העבודה הפעילה

? ActiveWorkbook.Name

כדי לקבל את שם הגיליון הפעיל

? Activesheet.Name

כדי לקבל את הנתיב של חוברת העבודה (הכתובת שבה היא נשמרה)

? ActiveWorkbook.Path

אז אם אתה צריך משהו על אובייקט (כגון חוברת עבודה, גיליונות, תרשימים, צורות, טווח וכו '), תוכל להשתמש בחלון מיידי כדי לקבל מידע זה במהירות.

קבל מידע על Debug.Print

ב- Excel VBA, Debug.Print משמש להצגת ערך המשתנה באופן מיידי בחלון המיידי.

לדוגמה, הקוד שלהלן יציג באופן מיידי את ההודעה "בוקר טוב" בחלון המיידי.

תת DisplayMessage () Debug.Print "בוקר טוב" סיום תת

תוכל להשתמש בשורה Debug.Print בקוד שלך בכדי לקבל נתונים מהירים בחלון המיידי או כדי לאתר באגים בקוד שלך.

לדוגמה, אם ברצונך לקבל את שמות כל הגיליונות בחוברת עבודה, תוכל להשתמש בקוד שלהלן:

תת GetSheetNames () עבור כל sh ב- ActiveWorkbook.Sheets Debug.Print sh.Name הבא sh סוף תת

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

Debug.Print היא טכניקה שימושית לניפוי באגים בקוד שלך. לדוגמה, אם אתה מפעיל לולאה ורוצה לראות כמה פעמים הלולאה הופעלה, תוכל פשוט להציב שורת Debug.Print שמציגה את המספרים הגדלים כאשר כל לולאה פועלת.

אם אתה משתמש Debug.Print כדי לאתר באגים את הקוד, זכור להסיר אותו כשתסיים.

הפעל מאקרו (או פונקציה)

אמנם ישנן דרכים שונות להפעלת מאקרו ב- Excel, אך אחת הדרכים המהירות היא שימוש בחלון המיידי.

כדי להריץ מאקרו, כל שעליך לעשות הוא להזין את שם המאקרו בחלון המיידי ולחץ על מקש enter (הסמן צריך להיות בסוף שם המאקרו כדי שזה יעבוד).

להלן דוגמה, כאשר ברגע שתזין את שם המאקרו בחלון המיידי, הוא מריץ את הקוד (שם הקוד מציג את ההודעה "בוקר טוב" בחלון המיידי).

זה יכול להיות שימושי כאשר יש לך קוד ורוצה לבדוק אם הוא מתפקד כצפוי או לא. תוכל להכיל שורת Debug.Print אחת או יותר בקוד ולהפעיל את המאקרו מהחלון המיידי.

הוא יראה לך מיד את הערכים בחלון המיידי ותוכל לבדוק אם הכל עובד תקין או לא.

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

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

בצע שורת קוד (או שורות קוד מרובות)

עם חלון מיידי, תוכל גם להריץ שורת קוד (או מספר שורות קודים).

החלק הטוב ביותר בזה הוא שאתה יכול פשוט לפתוח את החלון המיידי, להריץ את הקוד ולסגור (בניגוד למאקרו שעליך להכניס לחלון מודול ולאחר מכן לבצע אותו).

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

להלן הקוד שניתן למקם בחלון המיידי כדי לבטל את הסתרת כל הגיליונות בחוברת העבודה. מקם את הסמן בסוף השורה וברגע שתלחץ על מקש enter, הוא יבטל את כל הסדינים.

עבור כל גיליון בחוברת עבודה זו.גיליונות: Sheet.Visible = True: Sheet הבא

שים לב שלמרות שזה נראה כמו שורת קוד אחת, הוא מורכב משלושה חלקים.

כל חלק מופרד באמצעות: (נקודתיים), המתנהגת כמו שבירת קו. זה מאפשר לך להשתמש בלולאת For Next בחלון המיידי כדי לעבור על כל גיליון ולשנות את המאפיין הגלוי ל- TRUE (מה שמסתיר כל גיליון מוסתר).

קבל ערכים משתנים

כאשר אתה מתחיל ליצור קודי VBA מורכבים, יהיה עליך להסתמך על משתנים כדי לבצע את העבודה.

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

להלן קוד פשוט אשר נותן את סכום 10 המספרים השלמים החיוביים הראשונים ומציג את התוצאה בחלון המיידי.

Sub AddFirstTenNumbers () Dim Var As Integer Dim i As Integer Dim k As Integer For i = 1 to 10 k = k + i Next i Debug.Print i, k End Sub

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

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

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

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

הגדר ערך משתנה בעת איתור באגים

זהו שימוש מעט מתקדם בחלון המיידי, אך אם אתה משתמש בו, הוא יכול לחסוך זמן עצום בעת איתור באגים בקוד.

אתה יכול להשתמש בחלון המיידי כדי להגדיר את ערך המשתנה בזמן שאתה מפעיל את הקוד במצב איתור באגים (שבו אתה מגדיר נקודת שבירה כדי שהקוד לא יופעל במלואו - אלא עד לשורה מסוימת).

לדוגמה, אם יש לך לולאה שפועלת 10 פעמים ואתה רוצה לבדוק מה קורה כשהלולאה פועלת בפעם השמינית, אינך צריך לעבור את הלולאה שבע פעמים כדי להגיע לאיטרציות השמיניות. אתה יכול פשוט להוסיף נקודת שבירה לפני הלולאה ולשנות את משתנה הלולאה ל- 8. כעת, כאשר תפעיל את הקוד, הוא יראה לך מה קורה כאשר הלולאות פועלות בפעם השמינית.

זה הופך להיות הרבה יותר שימושי כשאתה כותב קודים מורכבים ורוצה לאתר באגים של לולאות ספציפיות.

נניח שיש לך קוד כפי שמוצג להלן:

Sub UnhideSheets () For i = 1 To Sheets.Count Debug.Print Sheets (i) .Name Next i End Sub

הקוד לעיל מפרט את שמות הגיליונות של כל הגיליונות בחוברת העבודה בחלון המיידי.

אם אינך רוצה לרשום את שמות כל הגיליונות, אלא רק את הגיליונות לאחר הגיליון העשירי, תוכל למקם נקודת שבירה בשורה השנייה של הלולאה (כך שלא יופעל דבר לאחר השורה הזו) ולאחר מכן לשנות את משתנה 'i' ל- 11.

כדי לשנות את שם המשתנה בחלון מיידי, הזן את השורה הבאה:

אני = 11

זה יבטיח שהתעלמות מעשר הפעמים הראשונות של הלולאה וערך המשתנה שלך יוגדר ל -11.

עגינה/ביטול העגינה של החלון המיידי

אתה יכול לעגן את החלון המיידי לעורך VB - מה שאומר שהוא נשאר במקום אחד בעורך VB ונעים איתו וגדלים אותו.

ואתה יכול גם לא לעגן אותו, מה שאומר שהוא בלתי תלוי בעורך VB וניתן להזיז אותו כחלון עצמאי.

להלן כיצד תוכל לשנות את הגדרות העגינה לחלון המיידי:

  1. לחץ על האפשרות כלים בתפריט בעורך VB
  2. לחץ על 'אפשרויות'
  3. בתיבת הדו -שיח אפשרויות, לחץ על הכרטיסייה האחרונה - עגינה
  4. סמן את האפשרות 'חלון מיידי' כדי להפוך אותו לעגון ובטל את הסימון כדי לא ניתן לעגינה.
  5. לחץ על אישור

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

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

חלון מיידי אינו מוצג - להלן מספר דרכים להשיג זאת

יכולות להיות מספר סיבות להתרחשות זו.

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

תוכל גם להשתמש במקלדת Ctrl + G כדי להציג את החלון המיידי. השתמש בקיצור מקשים זה בזמן שאתה נמצא בעורך VB.

סיבה נוספת לכך שאינך רואה את החלון המיידי היא כי הוא צומצם כעת כל כך סגור שאינך יכול לראות אותו (כפי שדווח כאן). פשוט סרוק במהירות ובדוק אם אתה רואה ריבוע כחול/אדום אורב איפשהו. אתה יכול להעביר את הסמן מעליו ותראה איזו אפשרות לשנות את הגודל שלו.

אם אינך יכול לראות את החלון המיידי כלל, הנה משהו שעבד עבור הרבה אנשים (זה קורה לעתים קרובות בגלל שינויים ברזולוציית המסך):

  1. פתח את עורך VB
  2. הקש Ctrl-G כדי לתת מיקוד לחלון המיידי (או לחץ על האפשרות תצוגה בתפריט ולאחר מכן לחץ על חלון מיידי)
  3. החזק את מקש ALT ולאחר מכן לחץ על מקש מקש הרווח. זה יציג אפשרויות נפתחות לחלון המיידי.
  4. הקש M (עבור העברה)
  5. השתמש במקשי החצים כדי להזיז את החלון
  6. לאחר שתבין היכן הוא, הגדל אותו

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

דבר נוסף שאתה יכול לנסות הוא לבטל את הזיכרון של החלון המיידי (עבור אל כלים -> אפשרויות -> עגינה ובטל את הסימון של אפשרות החלון המיידי). זה עבד לכמה אנשים.

אתה עשוי גם לאהוב את המאמרים הבאים:

  • חוברת עבודה מאקרו אישית של Excel | שמור והשתמש בפקודות מאקרו בכל חוברות העבודה
  • לולאות VBA של Excel: להמשך, עשה בזמן, עשה עד, עבור כל אחת (עם דוגמאות)
  • עבודה עם גליונות עבודה באמצעות Excel VBA
  • יצירת פונקציה מוגדרת משתמש (UDF) ב- Excel VBA

תוכל לעזור בפיתוח האתר, שיתוף הדף עם החברים שלך

wave wave wave wave wave