Oglas

Njegova integracija u Windows omogućuje kontrolu Internet Explorera na brojne iznenađujuće načine korištenja Skripta Visual Basic for Applications (VBA) iz bilo koje aplikacije koja je podržava, kao što su Word, Outlook ili Excel.

VBA automatizacija - posebno izravno automatiziranje preglednika poput IE-a kao što ćete vidjeti u ovom članku - je točno vrsta stvari koja VBA podiže iz prikladnog programskog skripta u moćan jezik za automatizaciju. Ono što ga čini tako strašnim jest činjenica da su mnoge aplikacije s kontrolama ili objektima kreirane upravo u svrhu da vam omoguće da se integrirate u nju koristeći programski jezik VBA.

Kroz godine pokazali smo vam kako možete napraviti neke stvarno cool stvari sa VBA. Na primjer, možete ga koristiti šaljite e-poštu izravno iz Excela Kako poslati e-poštu iz proračunske tablice u Excelu pomoću VBA skriptiNaš predložak koda pomoći će vam u postavljanju automatiziranih poruka e-pošte unutar programa Excel pomoću objekata podataka o kolaboraciji (CDO) i VBA skripte. Čitaj više

instagram viewer
, možete automatski izvoz zadataka programa Outlook u proračunsku tablicu Excel Kako izvesti Outlook zadatke u Excelu s VBABez obzira jeste li ljubitelj Microsofta, barem se jedna dobra stvar o proizvodima MS Office može reći kako je jednostavno integrirati svaki od njih jedan s drugim ... Čitaj više , i možete čak osmislite vlastiti internetski preglednik Kako napraviti svoj vlastiti osnovni internetski preglednik pomoću VBAKad zaista prestanete razmišljati o tome, internetski preglednik u svom najjednostavnijem obliku nije baš toliko impresivna aplikacija. Mislim, da, Internet je po nečijim standardima nevjerojatan. Koncept povezivanja ... Čitaj više ! Nisu to ni Microsoftovi proizvodi. Postoje aplikacije treće strane svih vrsta dobavljača koji su u svoj softver integrirali VBA i kompatibilne objekte - od Adobe Acrobat SDK do ObjectARX SDK za AutoCAD - postoje načini za "uključivanje" više aplikacija nego što vjerojatno ostvariti.

Ideja

U tom ćete slučaju Excel povezati s IE. Zašto IE? Budući da je Internet Explorer toliko dobro integriran s operativnim sustavom da vam zapravo ne treba mnogo činiti da biste počeli koristiti IE automatizaciju u VBA u drugim Microsoftovim proizvodima kao što su Word ili Excel. U tome je ljepota. U ovom ćete članku vidjeti kako radi ova automatizacija, a u narednom članku vidjet ćete kako možete učiniti gotovo istu stvar s drugim preglednicima.

Ono što ću vam ovdje pokazati je naizgled jednostavna aplikacija, ali ima puno aplikacija na kojima biste pomoću ovog koda mogli pomoću različitih preglednika raditi razne cool stvari. Dno crta je da ćete stvoriti Excel proračunsku tablicu u svrhu brzog spremanja svih otvorenih prozora preglednika jednim klikom na gumb. Možete spremiti ovu proračunsku tablicu i otići ili isključiti računalo.

Vratite se sat ili tri dana kasnije, otvorite proračunsku tablicu, kliknite drugi gumb i oni spremljeni URL-ovi ponovno će se otvoriti u istom broju kartica kao i prije. Očito dobra upotreba ovoga bilo bi spremanje čitave biblioteke uobičajenih mrežnih postavki radnog prostora u Excel. Tada možete vratiti radni prostor jednim klikom na gumb bez ponovnog pronalaženja svih tih URL-ova.

Automatizacija Internet Explorera pomoću VBA

Prvo što treba učiniti je otvoriti Excel (koristim 2013. - ostale verzije su slične kada je riječ o VBA programiranju) i prijeđite na stavku izbornika programera. Unutra ćete vidjeti gumb za umetanje koji spušta sve vaše kontrole. Odaberite ActiveX tipku i stavite je u svoju proračunsku tablicu.

IE-automation1

Vjerojatno ste već izradili zaglavlje za URL-ove ako želite, ali ne morate. Ovo je zaista biblioteka za pohranu URL-ova, pa zaglavlja zapravo nisu bitna. Jednom kada dodate gumb, dvaput kliknite na njega za otvaranje VBA uređivača. U donjem lijevom kutu vidjet ćete svojstva vašeg novog gumba.

Preimenujte ga u nešto poput cmdSaveURLs i postavite naslov na "Save URLs" - što ukazuje da je ovo gumb za spremanje svih otvorenih URL-ova iz vašeg IE preglednika.

save-url-ovi

Zatim idite na izbornik Alati pri vrhu VBA uređivača, kliknite na Upućivanje u izborniku i pomaknite se niz dugačak popis da biste pronašli referencu "Microsoft Internet Controls". Kliknite potvrdni okvir s lijeve strane, a zatim kliknite U redu.

IE-automation3

Sad ste spremni za pokretanje. U području teksta za uređivanje trebali biste vidjeti redak koji glasi "Private Sub cmdSaveURLs_Click ()". Ako ga ne vidite, kliknite lijevi padajući okvir iznad područja teksta i pronađite cmdSaveURL na popisu. Odaberite ga i on će stvoriti funkciju Click () za vas.

Ovo je kôd koji želite umetnuti u tu funkciju:

im IE kao objekt. Dim shellWins kao novi ShellWindows. Dim IE_TabURL kao string. Dim intRowPosition Kao cijeli broj intRowPosition = 2 za svaki IE u shellWins IE_TabURL = IE.LocationURL Ako IE_TabURL <> vbNullString Onda Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 kraj Ako sljedeći postavite shellWins = Ništa. Postavi IE = Ništa

Microsoft Scripting Runtime referenca omogućuje vam pristup objektu ShellWindows koji vam omogućava ponavljanje kroz Windows i pronalazak otvorenih primjeraka IE. Ta će se skripta pronaći svaki otvoreni URL i upisati u proračunsku tablicu Excel.

IE-automation4

Dakle, teoretski, ako radite na nečemu poput bloganja i imate nekoliko otvorenih stavki, poput prozora za istraživanje, uređivača bloga ili prozora kalendara - sve te kartice bit će aktivne. Ako se morate zatvoriti ili otići u žurbi, kopiranjem svih tih URL-ova može se stvoriti velika bol spremanje tamo gdje se nalazite.

IE-automation5

S novom Excel skriptu samo kliknite gumb Učitaj URL-ove i učitavat će ga izravno u proračunsku tablicu.

IE-automation6

Jedno upozorenje. Ako ne upotrebljavate redak zaglavlja, promijenit ćete redak "intRowPosition = 2" u "intRowPosition = 1", a započet će s prvim redom, a ne preskakujući zaglavlje.

Otvaranje spremljenog radnog prostora preglednika

Sljedeća faza ovog projekta je ići u drugom smjeru. Kliknite "Učitaj URL-ove" i Excel će pokrenuti IE i ponovno učitati sve one URL-ove koje ste spremili u proračunsku tablicu. Evo kako bi trebala izgledati funkcija cmdLoadURLs_Click ().

Dim IE kao objekt. Dim shellWins kao novi ShellWindows. Dim IE_TabURL kao string. Dim intRowPosition Kao cjeloviti broj intRowPosition = 2 Postavite IE = CreateObject ("InternetExplorer." Aplikacija ") IE.Visible = Istina IE.Navigate Sheet1.Range ("A" i intRowPosition) dok je IE.Busy DoEvents. Wend intRowPosition = intRowPosition + 1 Dok Sheet1.Range ("A" i intRowPosition) <> vbNullString IE.Navigate Sheet1.Range ("A" i intRowPosition), CLng (2048), dok je IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1. Wend Set IE = Ništa

Ovdje je nekoliko koraka, ali kao što vidite, kod nije sve toliko dugo ili komplicirano. Stvorite novu instancu IE, učinite je vidljivom (otvorit će se IE bez učitavanja URL-a). Zatim će učitati prvi URL na popisu.

IE-automation8

Dio skripte "Dok IE.Busy" čeka da se stranica u potpunosti učita, a zatim prijeđite na ostatak URL-ova u vašem proračunsku tablicu, otvaranje nove kartice (to je ono što radi "CLng (2048)", sve dok ne upadne u praznu ćeliju u vašoj proračunskoj tablici, tada će se zaustaviti otvaranje novih kartica. Evo mog IE preglednika sa sve četiri originalne kartice obnovljene pomoću skripte za automatizaciju Excel IE.

IE-automation9

Sažetak

Moj stvarni cilj to bio je da pojedinačne proračunske tablice postave zbirke kartica za zadatke poput istraživanja i pisanja na vlastitom blogu, pisanja na MakeUseOf, obavljanje SEO projekata na web mjestu ili čitav popis drugih uloga ili projekata za koje je potrebna spremljena zbirka kartica koje su uvijek koristi.

Korištenje proračunske tablice za pohranjivanje tih postavki i automatsko otvaranje u pregledniku može uštedjeti puno vremena... a zapravo je i prilično cool.

Koristite li bilo kakvu IE automatizaciju u svojim VBA aplikacijama? Vidite li još neke izvrsne svrhe ove vrste IE kontrole u Excelu? Podijelite svoje misli i povratne informacije u odjeljku s komentarima u nastavku!

Ryan je diplomirao elektrotehniku. Radio je 13 godina u inženjerstvu automatizacije, 5 godina u IT-u, a sada je Apps inženjer. Bivši glavni urednik MakeUseOfa, govorio je na nacionalnim konferencijama o vizualizaciji podataka i bio je prikazan na nacionalnoj televiziji i radiju.