Hirdetés
A Windows-hoz való integrálása lehetővé teszi az Internet Explorer vezérlését számos meglepő módon Visual Basic for Applications (VBA) parancsfájl bármely, az alkalmazást támogató alkalmazásból, például a Word, az Outlook vagy a Excel.
A VBA automatizálása - különösen az IE-hez hasonló böngésző automatizálása, amint azt a cikkből láthatja - pontosan megfelel az a fajta dolog, amely emeli a VBA-t egy kényelmes programozási szkriptről egy hatékony automatizálási nyelvre. Ennyire félelmetes az a tény, hogy sok vezérlővel vagy objektummal rendelkező alkalmazás egyszerűen azzal a céllal jön létre, hogy lehetővé tegye a VBA programozási nyelv használatával történő integrálását.
Az évek során megmutattuk, hogyan lehet valami igazán jó dolgot csinálni a VBA-val. Például felhasználhatja küldjön e-maileket közvetlenül az Excel belsejéből Hogyan lehet e-maileket küldeni Excel táblázatkezelő segítségével VBA szkriptekkelKódsablonunk segítségével automatikusan beállíthatja az e-maileket az Excel programból, az együttműködési adatobjektumok (CDO) és a VBA parancsfájlok segítségével. Olvass tovább , automatikusan exportálja az Outlook feladatait egy Excel táblázatba Az Outlook feladatok exportálása az Excelbe a VBA segítségévelFüggetlenül attól, hogy rajongója vagy a Microsoftnak, egy jó dolog, amit legalább az MS Office termékekkel kapcsolatban el lehet mondani, az, hogy mennyire könnyű egyesíteni őket egymással ... Olvass tovább , és te is megteheted tervezze meg saját Internet böngészőjét Hogyan készíthet saját alapvető böngészőt a VBA használatávalAmikor valóban nem gondolkodik rajta, az Internet böngésző a legegyszerűbb formájában nem igazán olyan lenyűgöző alkalmazás. Úgy értem, igen, az internet elképesztő mindenki számára. Az összekapcsolás fogalma Olvass tovább ! Ez nem csak a Microsoft terméke. Vannak harmadik féltől származó alkalmazások mindenféle gyártótól, amelyek integráltak VBA-t és kompatibilis objektumokat szoftverükbe - az Adobe Acrobat SDK-től az AutoCAD ObjectARX SDK-ig - vannak olyan lehetőségek, amelyekkel valószínűleg több alkalmazást csatlakoztathat, mint valószínűleg Rájön.
Az ötlet
Ebben az esetben az Excel-t az IE-hez kell csatlakoztatni. Miért IE? Mivel az Internet Explorer annyira jól integrálódott az operációs rendszerbe, hogy valójában nem kell sok minden tennie ahhoz, hogy az IE automatizálást a VBA-ban más Microsoft-termékekben, például a Word vagy az Excel alkalmazásban elkezdje. Ez a bejárat szépsége. Ebben a cikkben megtudhatja, hogyan működik ez az automatizálás, és egy jövőbeni cikkben megtudhatja, hogyan lehet majdnem hasonlót tenni más böngészőkkel.
Amit itt mutatok, egy látszólag egyszerű alkalmazás, de rengeteg olyan alkalmazás van, ahol ezt a kódot különféle jó dolgok elvégzéséhez használhatja böngészőjével. A lényeg az, hogy elkészít egy Excel táblázatot, amelynek célja az összes megnyitott böngészőablak gyors mentése egyetlen kattintással. Mentheti ezt a táblázatot, elmehet vagy kikapcsolhatja a számítógépet.
Jöjjön vissza egy órával vagy három nappal később, nyissa meg a táblázatot, kattintson egy másik gombra, és az elmentett URL-ek ugyanannak a lapnak a számát nyitják meg, mint korábban. Ennek nyilvánvaló hűvös felhasználása az általános online munkaterület-beállítások teljes könyvtárának tárolása az Excelben. Ezután egy gombnyomással visszaállíthatja a munkaterületet anélkül, hogy újra meg kellene találnia az összes URL-t.
Az Internet Explorer automatizálása a VBA segítségével
Az első lépés az Excel megnyitása (2013-at használom - más verziók hasonlóak a VBA programozáshoz), és lépjen a Fejlesztő menüpontba. Belül egy beszúrógombot lát, amely leejti az összes vezérlőt. Válassza ki az ActiveX nyomógomb-vezérlőt, és helyezze el a táblázatába.
Valószínűleg már létrehozott egy fejlécet az URL-ekhez, ha szeretné, de nem kell. Ez valóban egy URL tárolókönyvtár, tehát a fejléceknek nem igazán fontosak. Miután hozzáadta a gombot, kattintson duplán rá a VBA szerkesztő megnyitásához. A bal alsó sarokban láthatja az új nyomógomb tulajdonságait.
Nevezze át úgy, mint a cmdSaveURLs, és állítsa a képaláírást „URL-ek mentése” -re - jelezve, hogy ez a gomb az összes megnyitott URL mentésére az IE böngészőből.
Ezután lépjen az Eszközök menübe a VBA szerkesztő tetején, kattintson a Hivatkozások menüre, és görgessen lefelé a hosszú listán a „Microsoft Internet Controls” hivatkozás megtalálásához. Jelölje be a bal oldalán található jelölőnégyzetet, majd kattintson az OK gombra.
Most már készen állsz a gurulásra. A szerkesztő szövegterületében egy olyan sort kell látnia, amely a következő: „Private Sub cmdSaveURLs_Click ()”. Ha nem látja, kattintson a szövegmező feletti bal oldali legördülő mezőre, és keresse meg a cmdSaveURL fájlokat a listában. Válassza ki, és ez létrehozza az Ön számára a Click () funkciót.
Ezt a kódot kell beilleszteni ebbe a funkcióba:
im IE as Object. Dim shellWins Új ShellWindows néven. Dim IE_TabURL vonósként. Dim intRowPosition egész számként intRowPosition = 2 minden IE számára shellWins-ben IE_TabURL = IE.LocationURL, ha IE_TabURL <> vbNullString Akkor Sheet1.Range ("A" és intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 Vége, ha a Next Set shellWins = Semmi. IE = Semmi beállítása
A Microsoft Scripting Runtime hivatkozás lehetővé teszi a ShellWindows objektum elérését, amely lehetővé teszi a Windows rendszeren történő iterációt és a megnyitott IE példányok megkeresését. Ez a szkript megkeresi az összes megnyitott URL-t, és beírja az Excel táblázatba.
Tehát elméletileg, ha blogolással foglalkozik, és nyitott néhány elem, például kutatási ablakok, blogszerkesztő vagy naptárablakok - ezek a lapok aktívak lesznek. Ha be kell állítania, vagy sietnie kell, valódi fájdalom lehet, ha az összes URL-t lemásolja, ahol tartózkodik.
Az új Excel szkriptnél csak kattintson az URL-ek betöltése gombra, és közvetlenül tölti be a táblázatba.
Egy figyelmeztetés. Ha nem fejléc-sort használ, akkor az „intRowPosition = 2” sort „intRowPosition = 1” -re változtatja, és ez az első sorban kezdődik, ahelyett, hogy kihagyja a fejlétsort.
A mentett böngésző munkaterületének megnyitása
A projekt következő szakasza a másik irányba lépés. Kattintson az „URL-ek betöltése” elemre, és engedélyezze az Excel számára az IE indítását, és töltse újra az összes URL-t, amelyet a táblázatba mentett. Így néz ki a cmdLoadURLs_Click () függvény.
Dim IE as Object. Dim shellWins Új ShellWindows néven. Dim IE_TabURL vonósként. Tompa intRowPosition mint egész szám intRowPosition = 2 Állítsa be az IE = CreateObject ("InternetExplorer. Alkalmazás") IE.Visible = Igaz IE.Navigate Sheet1.Range ("A" és intRowPosition), míg IE.Busy DoEvents. Wend intRowPosition = intRowPosition + 1, míg a Sheet1.Range ("A" és intRowPosition) <> vbNullString IE.Navigate Sheet1.Range ("A" és intRowPosition), CLng (2048) Míg az IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1. Wend Set IE = Semmi
Itt van néhány lépés, de amint láthatja, a kód nem olyan hosszú és bonyolult. Hozzon létre egy új IE példányt, tegye láthatóvá (ez megnyílik az IE URL betöltése nélkül). Ezután betölti a lista első URL-jét.
A szkript „Amíg IE.Busy” része vár, amíg az oldal teljesen betöltődik, majd lépjen a többi URL-címre a táblázatot, megnyit egy új lapot (ezt teszi a „CLng (2048)”, amíg az el nem ér egy üres cellát a táblázatban, majd leáll új lapok megnyitása. Itt van az IE böngészőm, amelyben mind az eredeti négy lap az Excel IE automatizálási parancsfájl segítségével helyreállt.
összefoglalás
Ennek valódi célja az volt, hogy az egyes táblázatok fülek gyűjteményét állítsák össze olyan feladatokhoz, mint például a saját blogom kutatása és írása, írás a MakeUseOf webhelyen, SEO projektmunkát végez a webhelyen, vagy más szerepek vagy projektek teljes listáját, amelyekhez mindig elmentett lapok gyűjteménye szükséges használt.
Táblázat felhasználásával ezeknek a beállításoknak a tárolására és a böngészőben történő automatikus megnyitásuk sok időt takaríthat meg, és ez valójában szintén nagyon jó.
Használ valamilyen IE-automatizálást a VBA-alkalmazásokban? Lásd az Excel ilyen jellegű IE-vezérlésének egyéb kiváló felhasználásait? Ossza meg gondolatait és visszajelzéseit az alábbi megjegyzés szakaszban!
Ryan BSc villamosmérnöki diplomával rendelkezik. 13 évet dolgozott az automatizálás területén, 5 évet az informatika területén, és most Apps Engineer. A MakeUseOf volt vezérigazgatója, az adatmegjelenítéssel foglalkozó nemzeti konferenciákon beszélt, és szerepelt a nemzeti televízióban és rádióban.