Reklama

Jeho integrácia s Windows umožňuje ovládať Internet Explorer rôznymi prekvapujúcimi spôsobmi Skript jazyka Visual Basic for Applications (VBA) z akejkoľvek aplikácie, ktorá ho podporuje, ako napríklad Word, Outlook alebo Excel.

Automatizácia VBA - najmä priama automatizácia prehliadača, ako je IE, ako uvidíte v tomto článku - je presne tak niečo, čo povyšuje VBA z pohodlného programovacieho skriptu na výkonný automatizačný jazyk. To, čo robí to úžasným, je skutočnosť, že mnoho aplikácií s ovládacími prvkami alebo objektmi je vytvorených jednoducho za účelom umožnenia integrácie do programu pomocou programovacieho jazyka VBA.

V priebehu rokov sme vám ukázali, ako robiť s VBA skutočne cool veci. Môžete ho napríklad použiť na posielať e-maily priamo z Excelu Ako odosielať e-maily z tabuľky programu Excel pomocou skriptov VBANaša šablóna kódu vám pomôže nastaviť automatizované e-maily z Excelu pomocou skriptov Collaboration Data Objects (CDO) a VBA. Čítaj viac , môžete automaticky export úloh programu Outlook do tabuľky programu Excel

instagram viewer
Ako exportovať svoje úlohy programu Outlook do Excelu s VBAČi už ste fanúšikom spoločnosti Microsoft, jednou z dobrých vecí, ktorá sa dá povedať aspoň o produktoch MS Office, je to, aké ľahké je integrovať každú z nich navzájom ... Čítaj viac a môžete dokonca navrhnite si vlastný internetový prehľadávač Ako si vytvoriť svoj vlastný základný internetový prehliadač pomocou VBAKeď o tom skutočne prestanete premýšľať, internetový prehľadávač v najjednoduchšej podobe nie je v skutočnosti tak pôsobivou aplikáciou. Áno, internet je podľa nikoho štandardu úžasný. Koncept prepojenia ... Čítaj viac ! Nie sú to len produkty spoločnosti Microsoft. Existujú aplikácie od iných výrobcov, ktoré do svojho softvéru integrovali VBA a kompatibilné objekty - od Adobe Acrobat SDK po ObjectARX SDK pre AutoCAD - existuje spôsob, ako „pripojiť“ viac aplikácií, ako ste pravdepodobne realizovať.

Nápad

V tomto prípade sa chystáte prepojiť Excel s IE. Prečo IE? Pretože program Internet Explorer je tak dobre integrovaný do operačného systému, nemusíte skutočne robiť veľa, aby ste mohli začať používať automatizáciu IE vo VBA v iných produktoch spoločnosti Microsoft, ako sú Word alebo Excel. To je krása. V tomto článku uvidíte, ako táto automatizácia funguje, a v ďalšom článku uvidíte, ako robiť takmer to isté s ostatnými prehliadačmi.

Tu vám ukážem zdanlivo jednoduchú aplikáciu, ale má veľa aplikácií, v ktorých by ste mohli tento kód použiť na vykonávanie rôznych zaujímavých vecí pomocou prehliadača. Pointa je, že sa chystáte vytvoriť tabuľku Excel za účelom rýchleho uloženia všetkých otvorených okien prehliadača jediným kliknutím na tlačidlo. Túto tabuľku môžete uložiť a odísť alebo vypnúť počítač.

Vráťte sa o hodinu alebo tri dni neskôr, otvorte tabuľku, kliknite na iné tlačidlo a tieto uložené adresy URL sa znova otvoria na rovnakom počte kariet ako predtým. Toto by bolo zrejmé, keby sa v Exceli uložila celá knižnica bežných nastavení pracovného priestoru online. Potom môžete tento pracovný priestor obnoviť jediným kliknutím na tlačidlo bez toho, aby ste museli znova nájsť všetky tieto adresy URL.

Automatizácia programu Internet Explorer pomocou VBA

Prvá vec, ktorú musíte urobiť, je otvoriť Excel (používam 2013 - iné verzie sú podobné, pokiaľ ide o programovanie VBA) a prejdite na položku ponuky Vývojár. Vo vnútri sa zobrazí tlačidlo vloženia, ktoré zruší všetky ovládacie prvky. Vyberte ovládací prvok tlačidla ActiveX a umiestnite ho do tabuľky.

IE-automatizace1

Pravdepodobne ste už vytvorili záhlavie pre adresy URL, ak chcete, ale nemusíte. Toto je skutočne knižnica na ukladanie webových adries, takže na záhlaví záleží. Po pridaní tlačidla dvakrát naň otvorte editor VBA. Vľavo dole sa zobrazia vlastnosti nového tlačidla.

Premenujte ho na niečo podobné cmdSaveURL a nastavte titulok na „Uložiť adresy URL“, čo naznačuje, že toto je tlačidlo na uloženie všetkých otvorených adries URL z vášho prehliadača IE.

save-urls

Ďalej prejdite do ponuky Nástroje v hornej časti editora VBA, kliknite na odkazy v ponuke a prejdite nadol po dlhom zozname, aby ste našli odkaz „Microsoft Internet Controls“. Začiarknite políčko vľavo od neho a potom kliknite na tlačidlo OK.

IE-automation3

Teraz ste pripravený prevrátiť sa. V textovej oblasti editora by sa mal zobraziť riadok s textom „Súkromné ​​sub cmdSaveURLs_Click ()“. Ak ho nevidíte, kliknite do ľavého rozbaľovacieho poľa nad textovou oblasťou a v zozname nájdite cmdSaveURL. Vyberte ju a vytvorí funkciu Click ().

Toto je kód, ktorý chcete vložiť do tejto funkcie:

im IE ako objekt. Stlmiť shellWins ako nové ShellWindows. Dim IE_TabURL ako reťazec. Dim intRowPosition As Integer intRowPosition = 2 za každý IE In shellWins IE_TabURL = IE.LocationURL Ak IE_TabURL <> vbNullString Then Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 koniec, ak bude nastavený shellWins = Nič. Nastaviť IE = Nič

Odkaz Microsoft Scripting Runtime umožňuje prístup k objektu ShellWindows, ktorý vám umožňuje iterovať cez Windows a vyhľadávať inštancie IE, ktoré máte otvorené. Tento skript vyhľadá každú otvorenú adresu URL a zapíše ju do tabuľky programu Excel.

IE-automation4

Teoreticky teda, ak pracujete na niečo ako blogovanie a máte otvorené niekoľko položiek, ako napríklad výskumné okná, editor blogov alebo okno kalendára, všetky tieto karty budú aktívne. Ak sa musíte vypnúť alebo v zhone ponáhľať, môže byť skutočnou bolesťou uložiť kópiu všetkých týchto adries URL tam, kde sa nachádzate.

IE-automation5

Pomocou nového skriptu programu Excel stačí kliknúť na tlačidlo Načítať adresy URL a načíta sa priamo do tabuľky.

IE-automation6

Jedno upozornenie. Ak nepoužívate riadok záhlavia, potom budete chcieť zmeniť riadok „intRowPosition = 2“ na „intRowPosition = 1“ a bude to začínať na prvom riadku namiesto preskočenia riadka záhlavia.

Otvorenie pracovného priestoru uloženého prehliadača

Ďalšou fázou tohto projektu je ísť iným smerom. Kliknite na možnosť Načítať adresy URL a spustite program Excel IE a znova načítajte všetky adresy URL, ktoré ste uložili do tabuľky. Ako by mala vyzerať funkcia cmdLoadURLs_Click ().

Dim IE ako objekt. Stlmiť shellWins ako nové ShellWindows. Dim IE_TabURL ako reťazec. Dim intRowPosition As Integer intRowPosition = 2 Nastavte IE = CreateObject ("InternetExplorer. Aplikácia ") IE.Visible = True IE.Navigate Sheet1.Range („A“ & intRowPosition), zatiaľ čo IE.Busy DoEvents. Wend intRowPosition = intRowPosition + 1, zatiaľ čo Sheet1.Range ("A" & intRowPosition) <> vbNullString IE.Navigate Sheet1.Range ("A" & intRowPosition), CLng (2048) Zatiaľ čo IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1. Wend Set IE = Nič

Existuje niekoľko krokov, ale ako vidíte, kód nie je taký dlhý alebo komplikovaný. Vytvoríte novú inštanciu IE, zviditeľníte ju (otvorí sa IE bez načítania adresy URL). Ďalej načíta prvú adresu URL v zozname.

IE-automation8

Časť „Počas prehliadania IE.Busy“ čaká, kým sa stránka úplne nenačíta, a potom prejde na zvyšok adries URL vo vašej tabuľka, otvorenie novej karty (to je to, čo robí „CLng (2048)“), až kým v tabuľke nenarazí na prázdnu bunku, potom sa zastaví otváranie nových kariet. Tu je môj prehliadač IE so všetkými štyrmi originálnymi kartami obnovenými pomocou skriptu automatizácie IE Excel.

IE-automation9

zhrnutie

Mojím skutočným cieľom bolo, aby jednotlivé tabuľky vytvorili kolekcie kariet pre úlohy, ako je výskum a písanie na svojom vlastnom blogu, písanie na serveri MakeUseOf, ktorý vykonáva prácu na projekte SEO alebo celý zoznam ďalších úloh alebo projektov, ktoré vyžadujú uloženú kolekciu kariet, ktoré sú vždy použité.

Použitie tabuľky na uloženie týchto nastavení a automatizácia ich otvorenia v prehliadači môže ušetriť veľa času... a v skutočnosti je tiež celkom v pohode.

Používate vo svojich aplikáciách VBA nejaký druh automatizácie IE? Vidíte nejaké iné skvelé spôsoby použitia tohto druhu IE kontroly z Excelu? Podeľte sa o svoje myšlienky a spätnú väzbu v nižšie uvedenej sekcii komentárov!

Ryan má titul bakalára v odbore elektrotechnika. Pracoval 13 rokov v automatizačnom inžinierstve, 5 rokov v IT a teraz je aplikačným inžinierom. Bývalý šéfredaktor MakeUseOf, vystúpil na národných konferenciách o vizualizácii údajov a vystupoval v celoštátnych televíziách a rozhlase.