Utilizarea VBA pentru a automatiza sesiunile Internet Explorer dintr-o foaie de calcul Excel

Utilizarea VBA pentru a automatiza sesiunile Internet Explorer dintr-o foaie de calcul Excel / ferestre

Integrarea cu Windows permite controlul Internet Explorer într-un număr de metode surprinzătoare folosind scriptul Visual Basic for Applications (VBA) din orice aplicație care o acceptă, cum ar fi Word, Outlook sau Excel.

VBA automatizarea - în special automatizarea automată a unui browser ca IE, așa cum veți vedea în acest articol - este exact acel lucru care ridică VBA dintr-un script de programare convenabil într-un limbaj puternic de automatizare. Ceea ce face atât de minunat este faptul că multe aplicații cu controale sau obiecte sunt create pur și simplu pentru a vă permite să vă integrați în limbajul de programare VBA.

De-a lungul anilor, ți-am arătat cum să faci niște lucruri foarte interesante cu VBA. De exemplu, puteți să-l utilizați pentru a trimite e-mailuri direct din interior Excel Cum să trimiteți e-mailuri dintr-o foaie de calcul Excel Folosind script-uri VBA Cum să trimiteți e-mailuri dintr-o foaie de calcul Excel utilizând șabloanele VBA Șablonul nostru de cod vă va ajuta să configurați e-mailurile automate din Excel utilizând Colaborare Obiecte de date (CDO) și scripturi VBA. Citiți mai multe, puteți să exportați automat sarcinile din Outlook într-o foaie de calcul Excel Cum să exportați sarcinile Outlook spre Excel cu VBA Cum să exportați sarcinile Outlook spre Excel Cu VBA Fie că sunteți sau nu un fan al Microsoft, un lucru bun care se poate spune despre produsele MS Office, cel puțin, este cât de ușor este de a integra fiecare dintre ele unul cu altul ... Citește mai mult, și chiar puteți proiecta propriul browser de internet Cum să vă faceți propriul browser de Internet de bază folosind VBA Cum să vă faceți propriul de bază Internet Browser Utilizarea VBA Când oprești cu adevărat să te gândești la asta, un browser de Internet în forma sa cea mai simplă nu este cu adevărat o aplicație impresionantă. Vreau să spun, da, Internetul este uimitor după standardele cuiva. Conceptul de legare ... Citeste mai mult! Nu sunt doar produse Microsoft. Există aplicații terțe de la tot felul de furnizori care au integrat VBA și obiecte compatibile în software-ul lor - de la Adobe Acrobat SDK la SDK-ul ObjectARX pentru AutoCAD - există modalități de a “conectați-vă” mai multe aplicații decât probabil realizați.

Ideea

În acest caz, veți conecta Excel cu IE. De ce IE? Deoarece Internet Explorer este atât de bine integrat cu sistemul de operare, într-adevăr nu trebuie să faceți prea mult pentru a începe să utilizați automatizarea IE în VBA în alte produse Microsoft cum ar fi Word sau Excel. Asta e frumusețea lui. În acest articol vei vedea cum funcționează această automatizare, iar într-un articol viitor vei vedea cum să faci aproape același lucru cu alte browsere.

Ceea ce vă voi arăta aici este o aplicație aparent simplă, dar are o mulțime de aplicații în care ați putea folosi acest cod pentru a face o varietate de lucruri interesante cu browserul dvs. Linia de jos este că veți crea o foaie de calcul Excel, în scopul salvării rapide a tuturor ferestrelor de browser deschise cu un singur clic pe un buton. Puteți salva această foaie de calcul și puteți pleca sau opri calculatorul.

Reveniți o oră sau trei zile mai târziu, deschideți foaia de calcul, faceți clic pe un alt buton și acele adrese URL salvate vor fi redeschise în același număr de file ca și înainte. Utilizarea evidentă a acestui lucru ar fi să stocheze o întreagă bibliotecă de setări comune de spațiu de lucru online în Excel. Apoi, puteți restabili spațiul de lucru cu un singur clic al unui buton, fără a mai fi nevoie să găsiți din nou toate acele adrese URL.

Automatizarea Internet Explorer cu VBA

Primul lucru pe care trebuie să-l faceți este să deschideți Excel (folosesc 2013 - alte versiuni sunt similare atunci când vine vorba de programarea VBA) și du-te la elementul de meniu Developer. Înăuntru, veți vedea un buton de inserare, care scade toate comenzile. Selectați controlul butonului ActiveX și plasați-l în foaia de calcul.

Probabil ați creat deja un antet pentru adresele URL dacă doriți, dar nu este necesar. Aceasta este de fapt o bibliotecă de stocare a adreselor URL, deci antetele nu contează. Odată ce adăugați butonul, faceți dublu clic pe el pentru a deschide editorul VBA. În stânga jos, veți vedea proprietățile pentru butonul dvs. nou.

Redenumiți-l la ceva de genul cmdSaveURLs și setați legenda la “Salvați adrese URL” - indicând faptul că acesta este butonul pentru a salva toate adresele URL deschise din browserul IE.

Apoi, accesați meniul Instrumente din partea de sus a editorului VBA, faceți clic pe Referințe din meniu și derulați în jos lista lungă pentru a găsi “Controalele Microsoft Internet” referinţă. Faceți clic pe caseta de selectare din partea stângă a acesteia, apoi faceți clic pe OK.

Acum esti gata sa te duci. În zona de text a editorului, ar trebui să vedeți o linie care citește “Private Sub cmdSaveURLs_Click ()”. Dacă nu îl vedeți, faceți clic pe caseta din partea de jos din stânga deasupra zonei de text și găsiți cmdSaveURLs din listă. Selectați-l și va crea funcția Click () pentru dvs..

Acesta este codul pe care doriți să-l inserați în funcția respectivă:

im IE ca obiect Dim shellWins ca New ShellWindows Dim IE_TabURL ca String Dim intRowPosition ca intreg intRowPosition = 2 Pentru fiecare IE In shellWins IE_TabURL = IE.LocationURL Daca IE_TabURL <> vbNullString Apoi Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 Sfârșit dacă setul următor shellWins = nimic setat IE = nimic

Referința Microsoft Scripting Runtime o face astfel încât să puteți accesa obiectul ShellWindows, care vă permite să repetați prin Windows și să găsiți instanțele IE pe care le-ați deschis. Acest script va localiza fiecare adresă URL pe care ați deschis-o și o veți scrie în foaia de calcul Excel.

Deci, teoretic, dacă lucrați la ceva de genul blogging-ului și aveți câteva elemente deschise, cum ar fi ferestrele de cercetare, editorul de blog sau o fereastră de calendar - toate aceste file vor fi active. Dacă trebuie să închideți sau să părăsiți în grabă, poate fi o adevărată durere pentru a salva unde vă aflați prin copierea tuturor acelor URL-uri.

Cu noul dvs. script Excel, faceți clic pe butonul Încărcați adresele URL și îl veți încărca direct în foaia de calcul.

Un avertisment. Dacă nu utilizați un rând de antet, atunci veți dori să schimbați linia “intRowPosition = 2” la “intRowPosition = 1” iar acest lucru va începe la primul rând, mai degrabă decât sări peste rândul antetului.

Deschiderea spațiului dvs. de lucru salvat de browser

Următoarea etapă a acestui proiect este de a merge în cealaltă direcție. Apasă pe “Încărcați adresele URL” și aveți programul de lansare Excel IE și reîncărcați toate acele adrese URL pe care le-ați salvat în foaia de calcul. Iată ce ar trebui să arate funcția cmdLoadURLs_Click ().

Dim IE ca obiect Dim shellWins ca ShellWindows Dim Dim IE_TabURL ca String Dim intRowPosition ca intreg intRowPosition = 2 Set IE = CreateObject ("InternetExplorer.Application") IE.Visible = Adevărat IE.Navigate Sheet1.Range ("A" & intRowPosition) IE.Busy DoEvents Wend intRowPosition = intRowPoziție + 1 În timp ce Sheet1.Range ("A" & intRowPosition) <> vbNullString IE.Navigate Sheet1.Range ("A" & intRowPosition), CLng (2048) În timp ce IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 set Wend IE = nimic

Există câțiva pași aici, dar după cum puteți vedea codul nu este atât de lung sau complicat. Creați o nouă instanță a IE, faceți-o vizibilă (aceasta va deschide IE fără a încărca o adresă URL). Apoi va încărca prima adresă URL din listă.

“În timp ce IE.Busy” o parte a script-ului așteaptă până când pagina este complet încărcată și apoi treceți la restul adreselor URL din foaia de calcul, deschizând o filă nouă (asta este “CLng (2048)” face, până când atinge o celulă necompletată în foaia de calcul, atunci se va opri deschiderea de file noi. Ie browser-ul meu IE cu toate cele patru tab-uri originale recuperate folosind scriptul de automatizare Excel IE.

rezumat

Scopul meu real de a face acest lucru a fost de a avea foi de calcul individuale configurate colecții de file pentru activități cum ar fi cercetarea și scrierea pe propriul meu blog, scrierea pe MakeUseOf, realizarea unui proiect de SEO pe site sau o întreagă listă de alte roluri sau proiecte care necesită o colecție salvată de file care sunt utilizate întotdeauna.

Folosind o foaie de calcul pentru a stoca acele setări și automatizarea deschiderii acestora într-un browser poate salva o mulțime de timp ... și de fapt este destul de cool.

Utilizați orice tip de automatizare IE în aplicațiile dvs. VBA? Vedeți orice alte utilizări reale pentru acest tip de control IE din Excel? Împărtășiți-vă gândurile și feedback-ul în secțiunea de comentarii de mai jos!

Explorați mai multe despre: Automatizarea computerelor, Microsoft Excel, Foaie de calcul.