Verwenden von VBA zum Automatisieren von Internet Explorer-Sitzungen aus einer Excel-Tabelle

Die Integration mit Windows ermöglicht die Steuerung von Internet Explorer auf eine Reihe von überraschenden Arten mit Visual Basic für Applikationen (VBA) Skript aus jeder Anwendung, die es unterstützt, wie Word, Outlook oder Excel.

Die Integration mit Windows ermöglicht die Steuerung von Internet Explorer auf eine Reihe von überraschenden Arten mit Visual Basic für Applikationen (VBA) Skript aus jeder Anwendung, die es unterstützt, wie Word, Outlook oder Excel.
Werbung

Die Integration mit Windows ermöglicht die Steuerung von Internet Explorer auf eine Reihe von überraschenden Arten mit Visual Basic für Applikationen (VBA) Skript aus jeder Anwendung, die es unterstützt, wie Word, Outlook oder Excel.

VBA-Automatisierung - insbesondere die direkte Automatisierung eines Browsers wie IE, wie Sie in diesem Artikel sehen werden - ist genau die Art von Sache, die VBA von einem bequemen Programmierskript in eine leistungsfähige Automatisierungssprache erhebt. Das Tolle daran ist die Tatsache, dass viele Anwendungen mit Steuerelementen oder Objekten einfach erstellt werden, um Ihnen die Integration mit der Programmiersprache VBA zu ermöglichen.

Im Laufe der Jahre haben wir dir gezeigt, wie man mit VBA wirklich coole Sachen macht. Beispielsweise können Sie E-Mails direkt aus Excel senden. So senden Sie E-Mails aus einer Excel-Tabelle mithilfe von VBA-Skripts So senden Sie E-Mails aus einer Excel-Tabelle mithilfe von VBA-Skripts Wir zeigen Ihnen, wie Sie automatisierte E-Mails in Excel einrichten Verwenden von Collaboration Data Objects (CDO) und VBA-Skripten. Unsere Code-Vorlagen machen das viel einfacher als es klingt! Lesen Sie mehr, können Sie automatisch Outlook-Aufgaben in eine Excel-Tabelle exportieren So exportieren Sie Ihre Outlook-Aufgaben in Excel mit VBA So exportieren Sie Ihre Outlook-Aufgaben in Excel mit VBA Ob Sie ein Fan von Microsoft sind oder nicht, eine gute Sache, die gesagt werden kann Über MS Office-Produkte, zumindest, ist, wie einfach es ist, jeden von ihnen miteinander zu integrieren .... Lesen Sie mehr, und Sie können sogar Ihren eigenen Internet-Browser entwerfen Wie Sie Ihren eigenen einfachen Internet-Browser mit VBA machen Ihr eigener einfacher Internet-Browser mit VBA Wenn Sie wirklich aufhören, darüber nachzudenken, ist ein Internet-Browser in seiner einfachsten Form nicht wirklich so beeindruckend eine Anwendung. Ich meine, ja, das Internet ist für jeden etwas Besonderes. Das Konzept der Verknüpfung ... Lesen Sie mehr! Es sind auch nicht nur Microsoft-Produkte. Es gibt Anwendungen von Drittanbietern von allen Anbietern, die VBA und kompatible Objekte in ihre Software integriert haben - vom Adobe Acrobat SDK bis zum ObjectARX SDK für AutoCAD - es gibt Möglichkeiten, mehr Anwendungen "einzubinden" als Sie wahrscheinlich realisieren.

Die Idee

In diesem Fall verbinden Sie Excel mit IE. Warum IE? Weil der Internet Explorer so gut in das Betriebssystem integriert ist, dass Sie nicht viel tun müssen, um die IE-Automatisierung in VBA in anderen Microsoft-Produkten wie Word oder Excel zu verwenden. Das ist die Schönheit von In. In diesem Artikel werden Sie sehen, wie diese Automatisierung funktioniert, und in einem zukünftigen Artikel werden Sie sehen, wie Sie mit anderen Browsern fast die gleiche Sache machen.

Was ich Ihnen hier zeigen werde, ist eine scheinbar einfache Anwendung, aber es gibt viele Anwendungen, in denen Sie diesen Code verwenden können, um eine Vielzahl von coolen Dingen mit Ihrem Browser zu erledigen. Die Quintessenz ist, dass Sie eine Excel-Tabelle erstellen werden, um schnell alle geöffneten Browserfenster mit einem Klick auf eine Schaltfläche zu speichern. Sie können diese Tabelle speichern und weggehen oder den Computer ausschalten.

Komm eine Stunde oder drei Tage später wieder zurück, öffne die Tabelle, klicke auf eine andere Schaltfläche und die gespeicherten URLs werden wieder auf der gleichen Anzahl von Tabs geöffnet wie zuvor. Der offensichtliche coole Gebrauch davon wäre, eine ganze Bibliothek von allgemeinen Online-Arbeitsplatz-Setups in Excel zu speichern. Dann können Sie diesen Arbeitsbereich mit einem Klick auf eine Schaltfläche wiederherstellen, ohne alle diese URLs erneut finden zu müssen.

Internet Explorer mit VBA automatisieren

Das erste, was zu tun ist, öffnen Sie Excel (ich benutze 2013 - andere Versionen sind ähnlich, wenn es um VBA-Programmierung geht) und gehen Sie auf den Menüpunkt Developer. Dort sehen Sie eine Einfüge-Schaltfläche, über die alle Steuerelemente eingeblendet werden. Wählen Sie das ActiveX-Steuerelement aus und legen Sie es in Ihre Tabelle.

IE-Automatisierung1

Vermutlich haben Sie bereits einen Header für URLs erstellt, wenn Sie möchten, müssen dies aber nicht. Dies ist wirklich eine URL-Speicher-Bibliothek, so dass Header nicht wirklich wichtig sind. Sobald Sie die Schaltfläche hinzugefügt haben, doppelklicken Sie darauf, um den VBA-Editor zu öffnen. Unten links sehen Sie die Eigenschaften für Ihre neue Drucktaste.

Benennen Sie es in cmdSaveURLs um und legen Sie die Beschriftung auf "URLs speichern" fest - dies zeigt an, dass dies die Schaltfläche zum Speichern aller geöffneten URLs aus Ihrem IE-Browser ist.

Sicherungs-URLs

Gehen Sie als nächstes zum Menü Extras oben im VBA-Editor, klicken Sie im Menü auf Verweise und blättern Sie in der langen Liste nach unten, um die Referenz "Microsoft Internet Controls" zu finden. Klicken Sie auf das Kontrollkästchen links davon und dann auf OK.

IE-Automatisierung3

Jetzt bist du bereit zu rollen. Im Textbereich des Editors sollten Sie eine Zeile sehen, die "Private Sub cmdSaveURLs_Click ()" lautet. Wenn Sie es nicht sehen, klicken Sie auf die linke Dropdown-Box über dem Textbereich und suchen Sie cmdSaveURLs in der Liste. Wählen Sie es aus und es wird die Click () - Funktion für Sie erstellt.

Dies ist der Code, den Sie in diese Funktion einfügen möchten:

 im IE als Objekt Dim shellWins als neue ShellWindows Dim IE_TabURL als String Dim InRowPosition als Integer intRowPosition = 2 für jeden IE In shellWins IE_TabURL = IE.LocationURL Wenn IE_TabURL vbNullString Dann Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 End If Next Set shellWins = Nichts Setzen Sie IE = Nothing 

Die Microsoft Scripting Runtime-Referenz macht es so, dass Sie auf das ShellWindows-Objekt zugreifen können, das Ihnen ermöglicht, durch Windows zu iterieren und die Instanzen von IE zu finden, die Sie geöffnet haben. Dieses Skript findet alle geöffneten URLs und schreibt sie in die Excel-Tabelle.

IE-Automatisierung4

Also, in der Theorie, wenn Sie an etwas wie Bloggen arbeiten, und Sie ein paar Elemente geöffnet haben, wie Forschungsfenster, Ihr Blog-Editor oder ein Kalenderfenster - alle diese Registerkarten werden aktiv sein. Wenn Sie herunterfahren oder in Eile sein müssen, kann es sehr mühsam sein, zu speichern, wo Sie sind, indem Sie alle diese URLs kopieren.

IE-Automatisierung5

Klicken Sie mit Ihrem neuen Excel-Skript einfach auf die Schaltfläche URLs laden und es wird direkt in die Tabelle geladen.

IE-Automatisierung6

Ein Vorbehalt. Wenn Sie keine Kopfzeile verwenden, sollten Sie die Zeile "intRowPosition = 2" in "intRowPosition = 1" ändern. Dies beginnt in der ersten Zeile, anstatt die Kopfzeile zu überspringen.

Öffnen Ihres gespeicherten Browser-Arbeitsbereichs

Die nächste Stufe dieses Projekts ist es, in die andere Richtung zu gehen. Klicken Sie auf "URLs laden", lassen Sie Excel starten und laden Sie alle URLs erneut, die Sie in der Tabelle gespeichert haben. So sollte die Funktion cmdLoadURLs_Click () aussehen.

 Dim IE As Objekt Dim shellWins As Neu ShellWindows Dim IE_TabURL Als String Dim intRowPosition As Integer intRowPosition = 2 Setze IE = CreateObject ("InternetExplorer.Application") IE.Visible = Wahr IE.Navigiere Sheet1.Range ("A" & intRowPosition) While IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 Während Sheet1.Range ("A" & intRowPosition) vbNullString IE.Navigate Sheet1.Range ("A" & intRowPosition), CLng (2048) Während IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 Wendset IE = Nichts 

Es gibt ein paar Schritte hier, aber wie Sie sehen können, ist der Code nicht allzu lang oder kompliziert. Sie erstellen eine neue IE-Instanz und machen sie sichtbar (dies öffnet den IE, ohne eine URL zu laden). Als Nächstes wird die erste URL in der Liste geladen.

IE-Automatisierung8

Der "While IE.Busy" -Teil des Skripts wartet, bis die Seite vollständig geladen ist, und geht dann zu den restlichen URLs in Ihrer Tabelle über und öffnet einen neuen Tab (das ist der "CLng (2048)", bis) Es trifft auf eine leere Zelle in Ihrer Tabelle, dann hört es auf, neue Tabs zu öffnen. Hier ist mein IE-Browser mit allen vier ursprünglichen Tabs, die mit dem Excel-IE-Automatisierungsskript wiederhergestellt wurden.

IE-Automatisierung9

Zusammenfassung

Mein eigentliches Ziel war es, individuelle Tabellen zu erstellen, die Tabs für Aufgaben wie Recherchieren und Schreiben in meinem eigenen Blog, Schreiben auf MakeUseOf, SEO-Projektarbeit auf der Website oder eine ganze Liste anderer Rollen oder Projekte enthalten eine gespeicherte Sammlung von Registerkarten, die immer verwendet werden.

Wenn Sie eine Tabelle verwenden, um diese Einstellungen zu speichern und sie in einem Browser zu öffnen, können Sie viel Zeit sparen ... und das ist auch ziemlich cool.

Verwenden Sie eine beliebige IE-Automatisierung in Ihren VBA-Anwendungen? Sehen Sie andere coole Anwendungen für diese Art von IE-Steuerelement aus Excel? Teilen Sie Ihre Gedanken und Feedback in den Kommentaren unten!

In this article