
Joseph Goodman
0
4115
1023
Jeho integrace s Windows umožňuje ovládání Internet Exploreru několika překvapivými způsoby pomocí skriptu Visual Basic for Applications (VBA) z jakékoli aplikace, která jej podporuje, jako je Word, Outlook nebo Excel.
Automatizace VBA - zejména přímá automatizace prohlížeče jako IE, jak uvidíte v tomto článku - je přesně taková věc, která 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 k odesílání e-mailů přímo z aplikace Excel Jak odesílat e-maily z tabulky Excel pomocí skriptů VBA Jak odesílat e-maily z tabulky Excel pomocí skriptů VBA Naše kódová šablona vám pomůže nastavit automatické e-maily z aplikace Excel pomocí aplikace Excel Spolupracující datové objekty (CDO) a skripty VBA. můžete automaticky exportovat úkoly aplikace Outlook do tabulky aplikace Excel Jak exportovat úkoly aplikace Outlook do aplikace Excel s VBA Jak exportovat úkoly aplikace Outlook do aplikace Excel s VBA Ať už jste fanouškem společnosti Microsoft, jedna dobrá věc, kterou lze říci o MS Produkty sady Office přinejmenším ukazují, jak snadné je integrovat každou z nich navzájem… a můžete dokonce navrhnout vlastní internetový prohlížeč Jak si vytvořit svůj vlastní základní internetový prohlížeč pomocí VBA Jak si vytvořit svůj vlastní základní internetový prohlížeč pomocí VBA Když o tom opravdu přemýšlíte, 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í…! Nejedná se pouze o produkty společnosti Microsoft. Existují aplikace třetích stran od všech dodavatelů, které do svého softwaru integrovaly VBA a kompatibilní objekty - od Adobe Acrobat SDK po ObjectARX SDK pro AutoCAD - existují způsoby, jak “připojit do” více aplikací, než si pravděpodobně uvědomujete.
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 budoucím článku uvidíte, jak dělat téměř stejnou věc 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 předtím. 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 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 adresy URL” - což znamená, že se jedná o tlačítko pro uložení všech otevřených adres URL z prohlížeče IE.
Dále přejděte do nabídky Nástroje v horní části editoru VBA, v nabídce klikněte na odkazy a přejděte dlouhým seznamem dolů a vyhledejte “Microsoft Internet Controls” odkaz. 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ý čte “Soukromé 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 as Object Dim shellWins jako nový ShellWindows Dim IE_TabURL jako String Dim intRowPosition As Integer intRowPosition = 2 za každý IE In shellWins IE_TabURL = IE.LocationURL If IE_TabURL vbNullString Then Sheet1.Range ("A" & intRowPosition) = IE_TowUR = int_Tow = int_Tow = intRow 1 End If Next Set shellWins = Nic Set IE = Nic
Odkaz Microsoft Scripting Runtime umožňuje přístup k objektu ShellWindows, který vám umožní iterovat přes 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 spěchat, 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 aplikace 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 ikonu “Načíst adresy URL” a nechat Excel spustit IE a znovu načíst všechny ty URL, které jste uložili v tabulce. Zde by měla vypadat funkce cmdLoadURLs_Click ().
Dim IE jako objekt Dim shellWins jako nový ShellWindows Dim IE_TabURL jako String Dim intRowPosition As Integer intRowPosition = 2 Set IE = CreateObject ("InternetExplorer.Application") IE.Visible = True IE.Navigate Sheet1.Range ("A" & intRowPosition) IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 Zatímco Sheet1.Range („A“ & intRowPosition) vbNullString IE.Navigate Sheet1.Range („A“ & intRowPosition), CLng (2048) Zatímco IE.Busy DoEvents Wend intRowPosition = int 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.
“Zatímco IE.Busy” část skriptu čeká, dokud se stránka plně nenačte, a poté přejděte na zbytek adres URL v tabulce a otevřete novou kartu (to je to, co “CLng (2048)” , dokud nenarazí na prázdnou buňku v tabulce, přestane otevírat nové karty. 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, provádění SEO projektových prací na webu, nebo celý seznam dalších rolí nebo projektů, které vyžadují uložená kolekce karet, které se vždy používají.
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é jiné skvělé použití pro tento druh IE kontroly z Excelu? Sdílejte své myšlenky a zpětnou vazbu v sekci níže!