Verwenden von VBA zum Automatisieren von Internet Explorer-Sitzungen aus einer Excel-Kalkulationstabelle
Die Integration mit Windows ermöglicht die Steuerung von Internet Explorer auf überraschende Weise mit Hilfe des VBA-Skripts (Visual Basic for Applications) von jeder Anwendung, die es unterstützt, wie z. B. Word, Outlook oder Excel.
VBA-Automatisierung - insbesondere die direkte Automatisierung eines Browsers wie IE, wie Sie in diesem Artikel sehen werden - ist genau das, was VBA von einem praktischen Programmierskript zu einer leistungsstarken Automatisierungssprache macht. Was es so fantastisch macht, ist die Tatsache, dass viele Anwendungen mit Steuerelementen oder Objekten einfach erstellt werden, um die Integration mit der Programmiersprache VBA zu ermöglichen.
Im Laufe der Jahre haben wir Ihnen gezeigt, wie Sie mit VBA wirklich coole Sachen machen können. Sie können es beispielsweise verwenden, um E-Mails direkt aus Excel zu senden. So senden Sie E-Mails aus einer Excel-Kalkulationstabelle mit VBA-Skripts. So senden Sie E-Mails aus einer Excel-Kalkulationstabelle mithilfe von VBA-Scripts Collaboration Data Objects (CDO) und VBA-Skripts. Lesen Sie mehr. Sie können Outlook-Aufgaben automatisch in eine Excel-Tabelle exportieren. So exportieren Sie Ihre Outlook-Aufgaben mit VBA in Excel: Wie exportieren Sie Ihre Outlook-Aufgaben mit VBA in Excel? Ob Sie nun ein Microsoft-Fan sind oder nicht, ist eine gute Sache, die man sagen kann Bei MS Office-Produkten geht es jedenfalls darum, wie einfach es ist, jeden von ihnen miteinander zu integrieren. Lesen Sie mehr, und Sie können sogar Ihren eigenen Internetbrowser entwerfen. So erstellen Sie Ihren eigenen einfachen Internetbrowser mithilfe von VBA. So erstellen Sie Ihr eigenes Basic Internetbrowser mithilfe von VBA Wenn Sie wirklich darüber nachdenken, ist ein Internetbrowser in seiner einfachsten Form eine Anwendung nicht wirklich beeindruckend. Ich meine, ja, das Internet ist für jedermann erstaunlich. Das Konzept der Verlinkung… Read More! Es sind auch nicht nur Microsoft-Produkte. Es gibt Anwendungen von Drittanbietern, die VBA und kompatible Objekte in ihre Software integriert haben. Von Adobe Acrobat SDK bis zum ObjectARX SDK für AutoCAD gibt es verschiedene Möglichkeiten “einstecken” mehr Anwendungen als Sie wahrscheinlich realisieren.
Die Idee
In diesem Fall verbinden Sie Excel mit dem IE. Warum IE? Weil Internet Explorer so gut in das Betriebssystem integriert ist, dass Sie nicht wirklich viel tun müssen, um die IE-Automatisierung in VBA in anderen Microsoft-Produkten wie Word oder Excel zu verwenden. Das ist das Schöne an 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 dasselbe machen.
Was ich Ihnen hier zeigen werde, ist eine scheinbar einfache Anwendung, aber es gibt eine Vielzahl von Anwendungen, in denen Sie diesen Code verwenden könnten, um verschiedene coole Dinge mit Ihrem Browser zu erledigen. Im Endeffekt erstellen Sie eine Excel-Tabelle, um alle geöffneten Browserfenster schnell mit einem Klick zu speichern. Sie können diese Tabelle speichern und gehen oder Ihren Computer ausschalten.
Kommen Sie eine Stunde oder drei Tage später zurück, öffnen Sie die Tabelle, klicken Sie auf eine andere Schaltfläche. Die gespeicherten URLs werden in derselben Anzahl von Registerkarten wie zuvor geöffnet. Der naheliegende Vorteil wäre, eine ganze Bibliothek gängiger Online-Arbeitsbereiche in Excel zu speichern. Anschließend können Sie diesen Arbeitsbereich mit einem Klick auf eine Schaltfläche wiederherstellen, ohne alle URLs erneut suchen zu müssen.
Internet Explorer mit VBA automatisieren
Zuerst müssen Sie Excel öffnen (ich verwende 2013 - andere Versionen sind bei der VBA-Programmierung ähnlich), und gehen Sie zum Menüpunkt "Entwickler". Dort sehen Sie eine Einfügen-Schaltfläche, mit der alle Steuerelemente heruntergefahren werden. Wählen Sie das ActiveX-Drucktastensteuerelement aus, und platzieren Sie es in Ihrer Kalkulationstabelle.
Vermutlich haben Sie bereits einen Header für URLs erstellt, wenn Sie möchten, aber Sie müssen dies nicht. Dies ist wirklich eine URL-Speicherbibliothek, daher spielen Header keine Rolle. Nachdem Sie die Schaltfläche hinzugefügt haben, doppelklicken Sie darauf, um den VBA-Editor zu öffnen. Links unten sehen Sie die Eigenschaften für Ihre neue Drucktaste.
Benennen Sie es in etwas wie cmdSaveURLs um und setzen Sie die Beschriftung auf “URLs speichern” - zeigt an, dass dies die Schaltfläche zum Speichern aller geöffneten URLs in Ihrem IE-Browser ist.
Gehen Sie als Nächstes zum Menü Tools im oberen Bereich des VBA-Editors, klicken Sie im Menü auf Verweise und blättern Sie in der langen Liste nach unten “Microsoft Internetsteuerelemente” Referenz. Klicken Sie auf das Kontrollkästchen links davon und klicken Sie dann auf OK.
Jetzt bist du bereit zu rollen. Im Textbereich des Editors sollte eine Zeile angezeigt werden, die liest “Private Sub cmdSaveURLs_Click ()”. Wenn Sie es nicht sehen, klicken Sie auf das linke Dropdownfeld über dem Textbereich und suchen Sie nach cmdSaveURLs in der Liste. Wenn Sie es auswählen, 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 neues ShellWindows Dim IE_TabURL As String Dim intRowPosition als ganze Zahl intRowPosition = 2 für jeden IE in shellWins IE_TabURL = IE.LocationURL Wenn IE_TabURL <> vbNullString Then Sheet1.Range ("A" und "intRowPosition") ist intRowPosition + 1 End If Next Set shellWins = Nothing Set IE = Nothing
Die Microsoft Scripting Runtime-Referenz ermöglicht es Ihnen, auf das ShellWindows-Objekt zuzugreifen, wodurch Sie durch Windows iterieren und die geöffneten Instanzen des IE suchen können. Dieses Skript findet jede geöffnete URL und schreibt sie in die Excel-Tabelle.
Theoretisch also, wenn Sie an etwas wie Bloggen arbeiten und ein paar offene Elemente haben, wie z. B. Suchfenster, Ihr Blog-Editor oder ein Kalenderfenster, werden alle diese Registerkarten aktiv. Wenn Sie das System herunterfahren müssen oder es eilig haben müssen, kann es sehr schwierig sein, die Position zu speichern, in der Sie sich befinden, indem Sie all diese URLs kopieren.
Klicken Sie mit Ihrem neuen Excel-Skript einfach auf die Schaltfläche URLs laden und laden Sie es direkt in die Kalkulationstabelle.
Ein Vorbehalt. Wenn Sie keine Kopfzeile verwenden, müssen Sie die Zeile ändern “intRowPosition = 2” zu “intRowPosition = 1” und dies beginnt bei der ersten Zeile, anstatt die Kopfzeile zu überspringen.
Ihren gespeicherten Browser-Arbeitsbereich öffnen
Die nächste Phase dieses Projekts besteht darin, in die andere Richtung zu gehen. Drücke den “URLs laden” und lassen Sie Excel den IE starten und laden Sie alle URLs erneut, die Sie in der Tabelle gespeichert haben. So sollte die Funktion cmdLoadURLs_Click () aussehen.
Dim IE als Objekt Dim shellWins als neues ShellWindows Dim IE_TabURL As String Dim intRowPosition als Ganzzahl intRowPosition = 2 Set IE = CreateObject ("InternetExplorer.Application") IE.Visible = True IE.Navigate Sheet1.Range ("A" & intRowPosition) While IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 While Sheet1.Range ("A" & IntRowPosition) <> vbNullString IE.Navigate Sheet1.Range ("A" & IntRowPosition), CLng (2048) Während IE.Busy DoEvents Wend InRowPosition = intRowPosition + 1 Wend Set IE = Nothing
Es gibt ein paar Schritte, aber wie Sie sehen, ist der Code nicht allzu lang oder kompliziert. Sie erstellen eine neue Instanz des IE, machen sie sichtbar (dies öffnet den IE, ohne eine URL zu laden). Als Nächstes wird die erste URL in der Liste geladen.
Das “Während IE.Busy” Ein Teil des Skripts wartet, bis die Seite vollständig geladen ist. Fahren Sie dann mit den restlichen URLs in Ihrer Tabelle fort und öffnen Sie eine neue Registerkarte (das ist die “CLng (2048)” Wenn es eine leere Zelle in Ihrer Kalkulationstabelle trifft, werden keine neuen Tabs mehr geöffnet. Hier ist mein IE-Browser mit allen vier ursprünglichen Registerkarten, die mit dem Excel IE-Automatisierungsskript wiederhergestellt wurden.
Zusammenfassung
Mein eigentliches Ziel dabei war, dass einzelne Kalkulationstabellen Registerkarten für Aufgaben wie das Recherchieren und Schreiben in meinem eigenen Blog, das Schreiben auf MakeUseOf, das Durchführen von SEO-Projektarbeiten auf der Website oder eine ganze Liste anderer Rollen oder Projekte, die dies erfordern, einrichten eine gespeicherte Sammlung von Registerkarten, die immer verwendet werden.
Die Verwendung einer Kalkulationstabelle zum Speichern dieser Setups und das automatisierte Öffnen in einem Browser kann viel Zeit sparen… und es ist auch ziemlich cool.
Verwenden Sie in Ihren VBA-Anwendungen irgendeine IE-Automatisierung? Sehen Sie alle anderen coolen Anwendungen für diese Art von IE-Steuerelement in Excel? Teilen Sie Ihre Gedanken und Ihr Feedback in den Kommentaren unten mit!
Erfahren Sie mehr über: Computerautomatisierung, Microsoft Excel, Tabellenkalkulation.