לאלו מאיתנו שעומדים בראשנו VB.NETהמסע חזרה ל VB6 יכול להיות טיול מבלבל. השימוש בטיימר ב- VB6 זה ככה. יחד עם זאת, הוספת תהליכים מתוזמנים לקוד שלך אינה מובנת מאליה למשתמשים חדשים במאקרו VBA.
טיימרים למתחילים
קידוד מאקרו VBA של Word כדי לזמן אוטומטית מבחן שנכתב ב- Word הוא סיבה אופיינית לשימוש בטיימר. סיבה נפוצה נוספת היא לראות כמה זמן לוקח חלקים שונים של הקוד שלך כדי שתוכל לעבוד על אופטימיזציה של החלקים האיטיים. לפעמים, אולי תרצה לראות אם קורה משהו ביישום כאשר נראה שהמחשב פשוט יושב שם במצב סרק, מה שיכול להיות בעיית אבטחה. טיימרים יכולים לעשות זאת.
התחל טיימר
אתה מתחיל טיימר על ידי קידוד הצהרת OnTime. הצהרה זו מיושמת ב- Word וב- Excel, אך יש לה תחביר שונה, תלוי באיזו אתה משתמש. התחביר ל- Word הוא:
ביטוי. זמן (מתי, שם, סובלנות)
התחביר ל- Excel נראה כך:
ביטוי. OnTime (מוקדם ביותר, נוהל, זמן אחרון, לוח זמנים)
לשניהם הפרמטר הראשון והשני משותף. הפרמטר השני הוא שמו של מאקרו אחר שרץ כשמגיע הזמן בפרמטר הראשון. למעשה, קידוד הצהרה זו דומה ליצירת תת כותרת של אירוע במונחים VB6 או VB.NET. האירוע מגיע לשעה בפרמטר הראשון. תת-אירוע האירוע הוא הפרמטר השני.
זה שונה מהאופן בו הוא מקודד ב- VB6 או VB.NET. ראשית, המאקרו הנקוב בפרמטר השני יכול להיות בכל קוד נגיש. במסמך Word ממליצה מיקרוסופט להכניס אותו לתבנית המסמך Normal. אם תכניסו אותו למודול אחר, מיקרוסופט ממליצה להשתמש בנתיב המלא: Project. מודול. מאקרו.
הביטוי הוא בדרך כלל אובייקט היישום. מתיעוד Word ו- Excel נכתב כי הפרמטר השלישי יכול לבטל את ביצוע מאקרו האירוע למקרה שדיאלוג או תהליך אחר מונע את הפעלתו בפרק זמן מסוים. ב- Excel, אתה יכול לתזמן זמן חדש למקרה שזה יקרה.
קוד מאקרו אירוע הזמן
קוד זה ב- Word מיועד למנהל שרוצה להציג הודעה על כך שזמן הבדיקה פג ולהדפיס את תוצאת הבדיקה.
מבחן משנה ציבורי ()
לנפות. הדפס "האזעקה תיכבה תוך 10 שניות!"
לנפות. הדפס ("לפני השעה:" ועכשיו)
alertTime = Now + TimeValue ("00:00:10")
יישום. זמן התראה על זמן, "EventMacro"
לנפות. הדפס ("לאחר זמן:" ועכשיו)
סיום משנה
תת אירוע מאקרו ()
לנפות. הדפס ("ביצוע מאקרו אירוע:" ועכשיו)
סיום משנה
התוצאה היא התוכן הבא בחלון המיידי:
האזעקה תכבה תוך 10 שניות!
לפני הזמן: 12/25/2000 19:41:23 אחר הצהריים
אחרי OnTime: 12/25/2000 19:41:23 אחר הצהריים
ביצוע מאקרו אירוע: 27/02/2010 19:41:33 אחר הצהריים
אפשרות ליישומי Office אחרים
יישומים אחרים של Office אינם מיישמים את OnTime. עבור אלה, יש לך כמה אפשרויות. ראשית, אתה יכול להשתמש בפונקציית הטיימר, שמחזירה את מספר השניות מאז חצות במחשב האישי שלך ועושה מתמטיקה משלך, או שתוכל להשתמש בשיחות ממשק API של Windows. השימוש בשיחות ממשק API של Windows מביא ליתרון של להיות מדויק יותר מ טיימר. להלן שגרה שמציעה מיקרוסופט שעושה את העבודה:
פרטי הכרזת פונקציה getFrequency Lib "kernel32" _
כינוי "QueryPerformanceFrequency" (CyFrequency כמטבע) כל עוד
פרטי הכרזת פרטי getTickCount Lib "kernel32" _
כינוי "QueryPerformanceCounter" (cyTickCount כמטבע) כל עוד
תת-מבחן זמן הקריאה ()
עמעם dTime כפול
dTime = MicroTimer
זמן התחלה עמום כרווק
StartTime = טיימר
עבור i = 1 עד 10000000
Dim j כפול
j = ריבוע (i)
הבא
לנפות. הדפס ("זמן MicroTimer שנדרש היה:" ו- MicroTimer - dTime)
סיום משנה
פונקציה MicroTimer () כפולה
'
'חוזר שניות.
'
ערוך cyTicks1 כמטבע
תדר cyFrequency סטטי כמטבע
'
MicroTimer = 0
'קבל תדר.
אם cyFrequency = 0 אז getFrequency cyFrequency
'קבל קרציות.
getTickCount cyTicks1
' שניות
אם cyFrequency אז MicroTimer = cyTicks1 / cyFrequency
פונקצית סיום