פרסומת

שילובו עם חלונות מאפשר שליטה ב- Internet Explorer במספר דרכים מפתיעות לשימוש Visual Basic for Applications (VBA) סקריפט מכל יישום התומך בו, כגון Word, Outlook או אקסל.

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

במהלך השנים הראינו לכם איך לעשות דברים ממש מגניבים עם VBA. לדוגמה, אתה יכול להשתמש בזה כדי שלח דוא"ל ישירות מתוך Excel כיצד לשלוח דוא"ל מגיליון אלקטרוני של Excel באמצעות סקריפטים של VBAתבנית הקוד שלנו תעזור לך להגדיר דוא"ל אוטומטיים מתוך Excel באמצעות תסריטים של שיתוף פעולה של נתונים (CDO) ו- VBA. קרא עוד , אתה יכול באופן אוטומטי ייצא משימות של Outlook לגיליון אלקטרוני של Excel כיצד לייצא את משימות Outlook שלך ל- Excel באמצעות VBAבין אם אתם אוהדים של מיקרוסופט ובין אם לאו, דבר טוב שאפשר לומר לפחות על מוצרי MS Office הוא כמה קל לשלב כל אחד מהם אחד עם השני ... קרא עוד

instagram viewer
, ואתה יכול אפילו תכנן דפדפן אינטרנט משלך כיצד להכין דפדפן אינטרנט בסיסי משלך באמצעות VBAכשאתה באמת עוצר לחשוב על זה, דפדפן אינטרנט בצורתו הפשוטה ביותר אינו באמת יישום כה מרשים. כלומר, כן, האינטרנט מדהים בסטנדרטים של מישהו. הרעיון של קישור ... קרא עוד ! זה גם לא רק מוצרי מיקרוסופט. יש יישומי צד שלישי מכל מיני ספקים ששילבו אובייקטים VBA ותואמים בתוכנה שלהם - מ- Adobe Acrobat SDK ל- ObjectARX SDK עבור AutoCAD - יש דרכים "לחבר" ליישומים רבים יותר מכפי שסביר להניח להבין.

הרעיון

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

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

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

אוטומציה של Internet Explorer באמצעות VBA

הדבר הראשון שצריך לעשות הוא לפתוח את Excel (אני משתמש ב- 2013 - גרסאות אחרות דומות בכל הקשור לתכנות VBA) ולעבור לפריט התפריט Developer. בפנים תראה כפתור הוספה, שמפיל את כל הפקדים שלך. בחר בפקד לחצן ActiveX והנח אותו בגיליון האלקטרוני שלך.

IE- אוטומציה 1

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

שנה את שם זה למשהו כמו cmdSaveURLs והגדר את הכיתוב ל"שמור כתובות URL "- מה שמעיד שזה הכפתור לשמירת כל כתובות האתרים הפתוחות מדפדפן ה- IE שלך.

שמור כתובות אתרים

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

IE-אוטומציה 3

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

זהו הקוד שברצונך להוסיף לפונקציה זו:

im IE כאובייקט. פגזים עמומים כמו מעטפות חלונות חדשות. עמום IE_TabURL כמחרוזת. העמק intRowPosition כמספר שלם intRowPosition = 2 עבור כל IE במעטפת shell IE_TabURL = IE.LocationURL אם IE_TabURL <> vbNullString Then Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 סוף אם הבא הגדר shellWins = כלום. קבע IE = כלום

הפניה של Microsoft Scripting Runtime הופכת אותה כך שתוכל לגשת לאובייקט ShellWindows, המאפשר לך לחזור באמצעות Windows ולאתר את המופעים של IE שפתחת. סקריפט זה יאתר את כל כתובת האתר שפתחת ויכתוב אותה לגיליון האלקטרוני של Excel.

IE-אוטומציה 4

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

IE-אוטומציה 5

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

IE- אוטומציה 6

אזהרה אחת. אם אינך משתמש בשורת כותרות, תרצה לשנות את השורה "intRowPosition = 2" ל- "intRowPosition = 1" וזה יתחיל בשורה הראשונה במקום לדלג על שורת הכותרת.

פתיחת סביבת העבודה של הדפדפן השמורה שלך

השלב הבא בפרויקט זה ללכת לכיוון השני. לחץ על "טען כתובות אתרים" והפעל את ה- IE של Excel וטען מחדש את כל אותן כתובות אתרים ששמרת בגיליון האלקטרוני. כך נראית פונקציית cmdLoadURLs_Click ().

עמום IE כאובייקט. פגזים עמומים כמו מעטפות חלונות חדשות. עמום IE_TabURL כמחרוזת. עמעום intRowPosition כמספר שלם intRowPosition = 2 הגדר IE = CreateObject ("InternetExplorer. יישום") IE.Visible = IE.Navigate True TrueRange ("A" ו- intRowPosition) בזמן IE.Busy DoEvents. Wend intRowPosition = intRowPosition + 1 בזמן גיליון1.Range ("A" & intRowPosition) <> vbNullString IE.Navigate Sheet1.Range ("A" & intRowPosition), CLng (2048) בעוד IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1. וונד קבע IE = כלום

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

אוטומציה IE8

החלק "בעוד ש- IE.Busy" של הסקריפט ממתין עד שהדף נטען במלואו, ואז עבר לשאר כתובות האתר שלך גיליון אלקטרוני, פתיחת כרטיסייה חדשה (זה מה ש- "CLng (2048)" עושה, עד שהוא יפגע בתא ריק בגיליון האלקטרוני שלך, אז זה ייפסק פתיחת כרטיסיות חדשות. הנה דפדפן ה- IE שלי עם כל ארבעת הכרטיסיות המקוריות ששוחזרו באמצעות סקריפט האוטומציה של Excel IE.

IE-אוטומציה 9

סיכום

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

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

האם אתה משתמש באוטומציה של IE כלשהי ביישומי ה- VBA שלך? רואה שימושים מגניבים אחרים לסוג זה של שליטת IE מ- Excel? שתף את המחשבות והמשוב שלך בקטע התגובות למטה!

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