Publicitate

Integrarea sa cu Windows permite controlul Internet Explorer într-o serie de moduri surprinzătoare de utilizare Scriptul Visual Basic pentru Aplicații (VBA) din orice aplicație care îl acceptă, cum ar fi Word, Outlook sau Excela.

Automatizarea VBA - în special automatizarea directă a unui browser precum IE așa cum veți vedea în acest articol - este exact genul de lucruri care ridică VBA dintr-un script de programare convenabil într-un limbaj de automatizare puternic. Ceea ce o face atât de minunată este faptul că multe aplicații cu controale sau obiecte sunt create pur și simplu cu scopul de a vă permite să vă integrați în el folosind limbajul de programare VBA.

De-a lungul anilor, v-am arătat cum puteți face unele lucruri cu adevărat interesante cu VBA. De exemplu, îl puteți folosi pentru trimiteți e-mailuri direct din Excel Cum să trimiteți e-mailuri dintr-o foaie de calcul Excel folosind scripturi VBAModelul nostru de cod vă va ajuta să configurați e-mailuri automate din Excel utilizând scripturi de colaborare (CDO) și scripturi VBA. Citeste mai mult

instagram viewer
, puteți automat exportați sarcinile Outlook într-o foaie de calcul Excel Cum să exportați sarcinile Outlook în Excel cu VBAIndiferent dacă sunteți sau nu fan Microsoft, un lucru bun despre care se poate spune despre produsele MS Office, cel puțin, este cât de ușor este să integrați fiecare dintre ele unul cu altul ... Citeste mai mult , și puteți chiar proiectează-ți propriul browser de internet Cum să vă faceți propriul browser de bază de internet utilizând VBACând te oprești cu adevărat să te gândești la asta, un browser de Internet în cea mai simplă formă nu este chiar o aplicație impresionantă. Adică, da, Internetul este uimitor după standardele oricui. Conceptul de legătură ... Citeste mai mult ! Nu sunt doar produse Microsoft. Există aplicații terțe de la tot felul de furnizori care au integrat obiecte VBA și compatibile în software-ul lor - de la Adobe Acrobat SDK la ObjectARX SDK pentru AutoCAD - există modalități de a „conecta” mai multe aplicații decât probabil dau seama.

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, încât nu trebuie să faceți foarte mult pentru a începe să utilizați automatizarea IE în VBA în alte produse Microsoft, cum ar fi Word sau Excel. Aceasta este frumusețea din. În acest articol veți vedea cum funcționează această automatizare și într-un articol viitor veți vedea cum puteți face aproape același fel de 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 unde puteți utiliza acest cod pentru a face o varietate de lucruri misto cu browserul. Concluzia este că veți crea o foaie de calcul Excel în scopul de a salva rapid toate ferestrele browserului dvs. deschise cu un singur clic de buton. Puteți salva această foaie de calcul și vă puteți deplasa sau opri computerul.

Reveniți la o oră sau trei zile mai târziu, deschideți foaia de calcul, faceți clic pe un alt buton, iar acele adrese URL salvate se vor redeschide în același număr de file ca înainte. Folosirea evidentă a acestui lucru ar fi stocarea unei biblioteci întregi de setări comune ale spațiului de lucru online în Excel. Apoi, puteți restaura acel spațiu de lucru cu un singur clic al unui buton fără a fi nevoie să găsiți din nou toate respectivele adrese URL.

Automatizarea Internet Explorer cu VBA

Primul lucru de făcut este să deschideți Excel (folosesc 2013 - alte versiuni sunt similare atunci când vine vorba de programarea VBA) și accesați elementul de meniu pentru dezvoltator. În interior, veți vedea un buton de inserare, care vă scade toate controalele. Selectați butonul buton ActiveX și plasați-l în foaia de calcul.

IE-automation1

Probabil, ați creat deja un antet pentru adresele URL dacă doriți, dar nu trebuie. Aceasta este într-adevăr o bibliotecă de stocare URL, deci anteturile nu contează cu adevărat. După ce adăugați butonul, faceți dublu clic pe el pentru a deschide editorul VBA. În partea stângă jos, veți vedea proprietățile pentru noul buton.

Redenumiți-l la ceva de genul cmdSaveURL și setați Legenda la „Salvați URL-urile” - indicând că acesta este butonul pentru a salva toate adresele URL deschise din browserul dvs. IE.

save-url-uri

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

IE-automation3

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

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

sunt IE ca obiect. Dim shell Sheins As New ShellWindows. Dim IE_TabURL Ca șir. Dim intRowPosition As Inter intRowPosition = 2 Pentru fiecare IE în shellWins IE_TabURL = IE.LocationURL Dacă IE_TabURL <> vbNullString Atunci Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 End If Next Set shellWins = Nimic. Setați IE = Nimic

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

IE-automation4

Deci, teoretic, dacă lucrați la ceva precum blogging-ul și aveți câteva elemente deschise, cum ar fi ferestrele de cercetare, editorul blogului sau o fereastră de calendar - toate aceste file vor fi active. Dacă trebuie să închideți sau să plecați în grabă, poate fi o adevărată durere să salvați unde vă aflați copiind toate acele adrese URL.

IE-automation5

Cu noul dvs. script Excel, trebuie doar să faceți clic pe butonul Încărcați adresele URL și îl vor încărca chiar în foaia de calcul.

IE-automation6

Un singur avertisment. Dacă nu utilizați un rând antet, atunci veți dori să schimbați linia „intRowPosition = 2” în „intRowPosition = 1” și aceasta va începe de la primul rând în loc să săriți rândul antetului.

Deschiderea spațiului de lucru pentru browser salvat

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

Dim IE ca obiect. Dim shell Sheins As New ShellWindows. Dim IE_TabURL Ca șir. Dim intRowPosition As Inter intRowPosition = 2 Set IE = CreateObject ("InternetExplorer. Aplicație ") IE.Visible = True IE.Navigate Sheet1.Range ("A" și intRowPosition) În timp ce IE.Busy DoEvents. Wend intRowPosition = intRowPosition + 1 În timp ce Sheet1.Range ("A" și intRowPosition) <> vbNullString IE.Navigate Sheet1.Range ("A" & intRowPosition), CLng (2048) În timp ce IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1. Wend Set IE = Nimic

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

IE-automation8

Partea „În timp ce IE.Busy” a scriptului așteaptă până când pagina este complet încărcată și apoi treceți la restul adreselor URL din dvs. foaie de calcul, deschizând o nouă filă (adică ceea ce face „CLng (2048)”, până când se lovește de o celulă goală din foaia de calcul, atunci se va opri deschiderea de noi file. Iată browserul meu IE cu toate cele patru file originale recuperate folosind scriptul de automatizare Excel IE.

IE-automation9

rezumat

Scopul meu real de a face acest lucru a fost să am fișe de calcul individuale să creeze colecții de file pentru sarcini precum cercetarea și scrierea pe propriul blog, să scriu pe MakeUseOf, efectuând proiecte SEO pe site sau o listă întreagă de alte roluri sau proiecte care necesită o colecție salvată de file care sunt întotdeauna folosit.

Folosind o foaie de calcul pentru a stoca aceste setări și automatizarea deschiderii lor într-un browser poate economisi mult timp... și este de asemenea destul de fain.

Utilizați orice fel de automatizare IE în aplicațiile VBA? Vedeți alte utilizări interesante pentru acest tip de control IE de la Excel? Partajează-ți gândurile și feedback-ul în secțiunea de comentarii de mai jos!

Ryan are o diplomă de licență în inginerie electrică. A lucrat 13 ani în domeniul ingineriei automatizării, 5 ani la IT, iar acum este inginer pentru aplicații. Fost redactor manager al MakeUseOf, a vorbit la conferințele naționale despre vizualizarea datelor și a fost prezentat la TV și radio naționale.