Advertentie

De integratie met Windows maakt het mogelijk om Internet Explorer op een aantal verrassende manieren te gebruiken Visual Basic for Applications (VBA) -script vanuit elke toepassing die dit ondersteunt, zoals Word, Outlook of Excel.

VBA-automatisering - vooral het direct automatiseren van een browser zoals IE zoals je in dit artikel zult zien - is precies het soort dingen dat VBA verheft van een handig programmeerscript tot een krachtige automatiseringstaal. Wat het zo geweldig maakt, is het feit dat veel applicaties met bedieningselementen of objecten eenvoudig zijn gemaakt om je erin te laten integreren met de VBA-programmeertaal.

Door de jaren heen hebben we je laten zien hoe je echt coole dingen kunt doen met VBA. Je kunt het bijvoorbeeld gebruiken om verstuur e-mails rechtstreeks vanuit Excel E-mails verzenden vanuit een Excel-spreadsheet met VBA-scriptsOnze codesjabloon helpt u bij het instellen van geautomatiseerde e-mails vanuit Excel met behulp van Collaboration Data Objects (CDO) en VBA-scripts. Lees verder

, kunt u automatisch exporteer Outlook-taken naar een Excel-spreadsheet Hoe u uw Outlook-taken naar Excel exporteert met VBAOf je nu wel of geen fan bent van Microsoft, een goede zaak die gezegd kan worden over MS Office-producten is in ieder geval hoe gemakkelijk het is om ze allemaal met elkaar te integreren ... Lees verder , en je kunt zelfs ontwerp uw eigen internetbrowser Hoe u uw eigen standaard internetbrowser kunt maken met VBAAls je er echt over nadenkt, is een internetbrowser in zijn eenvoudigste vorm niet echt een indrukwekkende applicatie. Ik bedoel, ja, het internet is geweldig naar ieders maatstaven. Het concept van koppelen ... Lees verder ! Het zijn niet alleen Microsoft-producten. Er zijn applicaties van derden van allerlei leveranciers die VBA en compatibele objecten in hun software hebben geïntegreerd - van Adobe Acrobat SDK tot de ObjectARX SDK voor AutoCAD - er zijn manieren om meer applicaties te “pluggen” dan u waarschijnlijk realiseren.

Het idee

In dit geval ga je Excel verbinden met IE. Waarom IE? Omdat Internet Explorer zo goed is geïntegreerd met het besturingssysteem dat u echt niet veel hoeft te doen om IE-automatisering in VBA te gebruiken in andere Microsoft-producten zoals Word of Excel. Dat is het mooie van binnen. In dit artikel ziet u hoe deze automatisering werkt en in een toekomstig artikel ziet u hoe u bijna hetzelfde kunt doen met andere browsers.

Wat ik je hier ga laten zien, is een ogenschijnlijk eenvoudige applicatie, maar het heeft tal van applicaties waar je deze code zou kunnen gebruiken om verschillende coole dingen met je browser te doen. Het komt erop neer dat u een Excel-spreadsheet gaat maken om snel al uw geopende browservensters op te slaan met één klik op de knop. U kunt deze spreadsheet opslaan en weglopen of uw computer uitschakelen.

Kom een ​​uur of drie dagen later terug, open de spreadsheet, klik op een andere knop en die opgeslagen URL's worden opnieuw geopend op hetzelfde aantal tabbladen als voorheen. Het voor de hand liggende coole gebruik hiervan zou zijn om een ​​hele bibliotheek met veelgebruikte online werkruimte-instellingen in Excel op te slaan. Vervolgens kunt u die werkruimte met één klik op de knop herstellen zonder al die URL's opnieuw te hoeven zoeken.

Internet Explorer automatiseren met VBA

Het eerste dat u moet doen, is Excel openen (ik gebruik 2013 - andere versies zijn vergelijkbaar als het gaat om VBA-programmering) en ga naar het menu-item Developer. Daarbinnen zie je een invoegknop, die al je bedieningselementen laat vallen. Selecteer het ActiveX-drukknopbesturingselement en plaats het in uw spreadsheet.

IE-automatisering 1

Vermoedelijk heb je al een koptekst voor URL's gemaakt als je wilt, maar dat hoeft niet. Dit is echt een bibliotheek voor URL-opslag, dus kopteksten doen er niet echt toe. Nadat u de knop hebt toegevoegd, dubbelklikt u erop om de VBA-editor te openen. Linksonder ziet u de eigenschappen van uw nieuwe drukknop.

Hernoem het naar zoiets als cmdSaveURLs en stel het bijschrift in op "URL's opslaan" - wat aangeeft dat dit de knop is om alle geopende URL's vanuit uw IE-browser op te slaan.

bewaar-urls

Ga vervolgens naar het menu Extra bovenaan de VBA-editor, klik op Verwijzingen in het menu en blader door de lange lijst om de verwijzing naar "Microsoft Internet Controls" te vinden. Klik op het selectievakje links ervan en klik vervolgens op OK.

IE-automatisering 3

Nu ben je klaar om te rollen. In het tekstgedeelte van de editor zou u een regel moeten zien met de tekst "Private Sub cmdSaveURLs_Click ()". Als je het niet ziet, klik dan op de linker vervolgkeuzelijst boven het tekstgebied en zoek cmdSaveURLs in de lijst. Selecteer het en het maakt de Click () -functie voor u.

Dit is de code die u in die functie wilt invoegen:

im IE als object. Dim shellWins als nieuwe ShellWindows. Dim IE_TabURL als tekenreeks. Dim intRowPosition als geheel getal intRowPosition = 2 voor elke IE in shellWins IE_TabURL = IE.LocationURL If IE_TabURL <> vbNullString Dan Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 End If Next Set shellWins = Niets. Stel IE = niets in

De Microsoft Scripting Runtime-referentie zorgt ervoor dat u toegang hebt tot het ShellWindows-object, waarmee u itereert via Windows en de instanties van IE kunt lokaliseren die u hebt geopend. Dit script lokaliseert elke geopende URL en schrijft deze naar de Excel-spreadsheet.

IE-automatisering 4

Dus in theorie, als je aan iets als bloggen werkt, en je hebt een paar items open, zoals onderzoeksvensters, je blog-editor of een kalendervenster, dan zullen al die tabbladen actief zijn. Als je moet afsluiten of haast hebt, kan het erg lastig zijn om op te slaan waar je bent door al die URL's te kopiëren.

IE-automatisering 5

Klik met uw nieuwe Excel-script op de knop URL's laden en deze wordt rechtstreeks in de spreadsheet geladen.

IE-automatisering 6

Een waarschuwing. Als u geen koptekstrij gebruikt, wilt u de regel 'intRowPosition = 2' wijzigen in 'intRowPosition = 1' en dit begint op de eerste rij in plaats van de koptekstrij over te slaan.

Uw opgeslagen browserwerkruimte openen

De volgende fase van dit project is om de andere kant op te gaan. Klik op de "Load URLs" en laat Excel IE starten en herlaad al die URL's die je in de spreadsheet hebt opgeslagen. Hier is hoe de functie cmdLoadURLs_Click () eruit zou moeten zien.

Dim IE als object. Dim shellWins als nieuwe ShellWindows. Dim IE_TabURL als tekenreeks. Dim intRowPosition als geheel getal intRowPosition = 2 Stel IE = CreateObject in ("InternetExplorer. Toepassing") IE.Visible = True IE.Navigate Sheet1.Range ("A" & intRowPosition) terwijl IE.Busy DoEvents. Wend intRowPosition = intRowPosition + 1 Terwijl Sheet1.Range ("A" & intRowPosition) <> vbNullString IE.Navigate Sheet1.Range ("A" & intRowPosition), CLng (2048) Terwijl IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1. Wend Set IE = niets

Er zijn een paar stappen hier, maar zoals je kunt zien is de code niet zo lang of ingewikkeld. U maakt een nieuwe instantie van IE, maakt deze zichtbaar (hierdoor wordt IE geopend zonder een URL te laden). Vervolgens laadt het de eerste URL in de lijst.

IE-automatisering 8

Het "While IE.Busy" -gedeelte van het script wacht totdat de pagina volledig is geladen en ga dan verder met de rest van de URL's in uw spreadsheet, een nieuw tabblad openen (dat is wat de "CLng (2048)" doet, totdat het een lege cel in uw spreadsheet raakt, dan stopt het nieuwe tabbladen openen. Hier is mijn IE-browser met alle vier de originele tabbladen hersteld met behulp van het Excel IE-automatiseringsscript.

IE-automatisering 9

Samenvatting

Mijn echte doel om dit te doen was om individuele spreadsheets verzamelingen tabbladen te laten instellen voor taken zoals onderzoeken en schrijven op mijn eigen blog, schrijven op MakeUseOf, SEO-projectwerk doen op de site of een hele lijst met andere rollen of projecten waarvoor een opgeslagen verzameling tabbladen vereist is die altijd zijn gebruikt.

Het gebruik van een spreadsheet om die instellingen op te slaan en ze automatisch in een browser te openen, kan veel tijd besparen... en het is eigenlijk ook best gaaf.

Gebruik je enige vorm van IE-automatisering in je VBA-applicaties? Zie je andere coole toepassingen voor dit soort IE-besturing vanuit Excel? Deel uw mening en feedback in de opmerkingen hieronder!

Ryan heeft een BSc-graad in elektrotechniek. Hij heeft 13 jaar in automatiseringstechniek gewerkt, 5 jaar in IT en is nu een Apps Engineer. Hij was een voormalig hoofdredacteur van MakeUseOf, hij sprak op nationale conferenties over datavisualisatie en was te zien op nationale tv en radio.