reklama
Jeho integrace s Windows umožňuje ovládání Internet Exploreru několika překvapujícími způsoby použití Skript jazyka Visual Basic for Applications (VBA) z jakékoli aplikace, která jej podporuje, jako je Word, Outlook nebo Vynikat.
Automatizace VBA - zejména přímá automatizace prohlížeče jako IE, jak uvidíte v tomto článku - je přesně taková něco, co zvyšuje VBA z pohodlného programovacího skriptu na výkonný automatizační jazyk. To, co dělá to tak úžasným, je skutečnost, že mnoho aplikací s ovládacími prvky nebo objekty jsou vytvořeny jednoduše za účelem umožnění integrace do něj pomocí programovacího jazyka VBA.
V průběhu let jsme vám ukázali, jak s VBA dělat opravdu skvělé věci. Můžete jej například použít posílat e-maily přímo z aplikace Excel Jak posílat e-maily z tabulky Excel pomocí skriptů VBANaše šablona kódu vám pomůže nastavit automatické e-maily z aplikace Excel pomocí skriptů Collaboration Data Objects (CDO) a VBA. Přečtěte si více , můžete automaticky exportovat úkoly aplikace Outlook do tabulky aplikace Excel
Jak exportovat úkoly aplikace Outlook do Excelu pomocí VBAAť už jste fanouškem společnosti Microsoft, jednou z dobrých věcí, kterou lze alespoň říci o produktech MS Office, je to, jak snadné je integrovat každou z nich navzájem ... Přečtěte si více , a můžete dokonce vytvořte si vlastní internetový prohlížeč Jak si vytvořit svůj vlastní základní internetový prohlížeč pomocí VBAKdyž na to opravdu přestanete myslet, internetový prohlížeč ve své nejjednodušší podobě není ve skutečnosti tak působivou aplikací. Myslím, že ano, internet je úžasný podle někoho standardu. Koncept propojení ... Přečtěte si více ! Nejedná se pouze o produkty společnosti Microsoft. Existují aplikace třetích stran od různých dodavatelů, které do svého softwaru integrovaly VBA a kompatibilní objekty - od Adobe Acrobat SDK po ObjectARX SDK pro AutoCAD - existují způsoby, jak se připojit k více aplikacím, než jste pravděpodobně realizovat.Idea
V tomto případě se chystáte propojit Excel s IE. Proč IE? Protože Internet Explorer je tak dobře integrován s operačním systémem, že opravdu nemusíte dělat hodně, abyste mohli začít používat automatizaci IE ve VBA v jiných produktech společnosti Microsoft, jako je Word nebo Excel. To je krása. V tomto článku uvidíte, jak tato automatizace funguje, a v dalším článku uvidíte, jak dělat téměř totéž s jinými prohlížeči.
Zde vám ukážu zdánlivě jednoduchou aplikaci, ale má spoustu aplikací, ve kterých byste mohli pomocí tohoto kódu udělat s prohlížečem řadu skvělých věcí. Pointa je, že se chystáte vytvořit tabulku Excel za účelem rychlého uložení všech otevřených oken prohlížeče jediným kliknutím na tlačítko. Tuto tabulku můžete uložit a odejít nebo vypnout počítač.
Vraťte se o hodinu nebo tři dny později, otevřete tabulku, klikněte na jiné tlačítko a tyto uložené adresy URL se znovu otevřou na stejném počtu karet jako dříve. Toto by bylo zjevné v pohodě, kdyby se v Excelu uložila celá knihovna běžných nastavení pracovního prostoru online. Poté můžete pracovní prostor obnovit jediným kliknutím na tlačítko, aniž byste museli znovu najít všechny tyto adresy URL.
Automatizace aplikace Internet Explorer pomocí VBA
První věc, kterou musíte udělat, je otevřít Excel (používám rok 2013 - jiné verze jsou podobné, pokud jde o programování VBA) a přejděte na položku nabídky Vývojář. Uvnitř se zobrazí tlačítko Vložit, které sklopí všechny vaše ovládací prvky. Vyberte ovládací tlačítko ActiveX a umístěte jej do tabulky.
Pravděpodobně jste již vytvořili záhlaví pro adresy URL, pokud chcete, ale nemusíte. Toto je opravdu knihovna úložiště URL, takže záhlaví na tom opravdu nezáleží. Jakmile přidáte tlačítko, dvakrát na něj otevřete editor VBA. Vlevo dole uvidíte vlastnosti nového tlačítka.
Přejmenujte ji na něco jako cmdSaveURL a nastavte titulek na „Uložit URL“ - což znamená, že toto je tlačítko pro uložení všech otevřených URL z vašeho prohlížeče IE.
Dále přejděte do nabídky Nástroje v horní části editoru VBA, v nabídce klepněte na odkazy a přejděte dlouhým seznamem a vyhledejte odkaz „Microsoft Internet Controls“. Zaškrtněte políčko nalevo od něj a potom klepněte na tlačítko OK.
Nyní jste připraveni se vrátit. V textové oblasti editoru byste měli vidět řádek, který zní „Private Sub cmdSaveURLs_Click ()“. Pokud ji nevidíte, klikněte na levé rozbalovací pole nad textovou oblastí a najděte v seznamu cmdSaveURL. Vyberte ji a vytvoří pro vás funkci Click ().
Toto je kód, který chcete do této funkce vložit:
im IE jako objekt. Dim shellWins jako nové ShellWindows. Dim IE_TabURL jako řetězec. Dim intRowPosition As Integer intRowPosition = 2 za každý IE In shellWins IE_TabURL = IE.LocationURL Pokud IE_TabURL <> vbNullString Then Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 End If Next Set shellWins = Nic. Nastavit IE = Nic
Odkaz Microsoft Scripting Runtime umožňuje přístup k objektu ShellWindows, který vám umožní iterovat prostřednictvím Windows a najít instance IE, které máte otevřené. Tento skript vyhledá každou otevřenou adresu URL a zapíše ji do tabulky aplikace Excel.
Teoreticky tedy pokud pracujete na něčem, jako je blogování, a máte otevřeno několik položek, jako jsou výzkumná okna, editor blogů nebo okno kalendáře - všechny tyto karty budou aktivní. Pokud se musíte vypnout nebo nechat ve spěchu, může být skutečnou bolestí zachránit, kde jste, zkopírováním všech těchto adres URL.
Pomocí nového skriptu Excel stačí kliknout na tlačítko Načíst adresy URL a načíst jej přímo do tabulky.
Jedna námitka. Pokud nepoužíváte řádek záhlaví, budete chtít změnit řádek „intRowPosition = 2“ na „intRowPosition = 1“, a to začne v prvním řádku, nikoli přeskočení řádku záhlaví.
Otevření pracovního prostoru uloženého prohlížeče
Další fází tohoto projektu je jít jiným směrem. Klikněte na „Načíst adresy URL“ a nechte aplikaci Excel spustit IE a znovu načtěte všechny adresy URL, které jste uložili do tabulky. Zde by měla vypadat funkce cmdLoadURLs_Click ().
Dim IE jako objekt. Dim shellWins jako nové ShellWindows. Dim IE_TabURL jako řetězec. Dim intRowPosition As Integer intRowPosition = 2 Nastaví IE = CreateObject ("InternetExplorer. Aplikace") IE.Visible = True IE.Navigate Sheet1.Range ("A" & intRowPosition), zatímco IE.Busy DoEvents. Wend intRowPosition = intRowPosition + 1 zatímco List1.Range ("A" & intRowPosition) <> vbNullString IE.Navigate Sheet1.Range ("A" & intRowPosition), CLng (2048) Zatímco IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1. Wend Set IE = Nic
Je zde několik kroků, ale jak vidíte, kód není tak dlouhý nebo složitý. Vytvoříte novou instanci IE, zviditelníte ji (otevře se IE bez načtení URL). Poté načte první adresu URL v seznamu.
Část skriptu „Zatímco IE.Busy“ čeká, dokud se stránka plně nenačte, a poté se přesune na zbývající adresy URL ve vašem tabulky, otevření nové karty (to je to, co dělá "CLng (2048)", dokud nenarazí na prázdnou buňku v tabulce, pak se zastaví otevírání nových karet. Zde je můj prohlížeč IE se všemi čtyřmi původními kartami získanými pomocí skriptu pro automatizaci IE Excel.
souhrn
Mým skutečným cílem bylo, aby jednotlivé tabulky vytvořily kolekce karet pro úkoly, jako je zkoumání a psaní na mém vlastním blogu, psaní na MakeUseOf, dělá SEO projekt práce na webu, nebo celý seznam dalších rolí nebo projektů, které vyžadují uloženou sbírku karet, které jsou vždy použitý.
Použití tabulky k uložení těchto nastavení a automatizaci jejich otevření v prohlížeči může ušetřit spoustu času... a je to vlastně také docela v pohodě.
Používáte ve svých aplikacích VBA jakýkoli druh automatizace IE? Vidíte nějaká další skvělá použití pro tento druh IE kontroly z Excelu? Podělte se o své myšlenky a zpětnou vazbu v sekci níže!
Ryan má bakalářský titul z elektrotechniky. Pracoval 13 let v automatizační technice, 5 let v IT a nyní je Apps Engineer. Bývalý šéfredaktor MakeUseOf, vystoupil na národních konferencích o vizualizaci dat a vystupoval v národních televizích a rádiích.