Werbung
Die Integration in Windows ermöglicht die Steuerung von Internet Explorer auf eine Reihe überraschender Arten Visual Basic für Applikationen (VBA) -Skript aus jeder Anwendung, die es unterstützt, wie z. B. Word, Outlook oder Excel.
Die VBA-Automatisierung - insbesondere die direkte Automatisierung eines Browsers wie IE, wie Sie in diesem Artikel sehen werden - ist genau das Richtige Die Art von Dingen, die VBA von einem praktischen Programmierskript zu einer leistungsstarken Automatisierungssprache machen. Was es so großartig macht, ist die Tatsache, dass viele Anwendungen mit Steuerelementen oder Objekten nur erstellt werden, um Ihnen 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. Zum Beispiel können Sie es verwenden, um Senden Sie E-Mails direkt aus Excel heraus So senden Sie E-Mails aus einer Excel-Tabelle mithilfe von VBA-SkriptenUnsere Codevorlage hilft Ihnen beim Einrichten automatisierter E-Mails aus Excel mithilfe von CDO- (Collaboration Data Objects) und VBA-Skripten. Weiterlesen können Sie automatisch Exportieren Sie Outlook-Aufgaben in eine Excel-Tabelle So exportieren Sie Ihre Outlook-Aufgaben mit VBA nach ExcelUnabhängig davon, ob Sie ein Fan von Microsoft sind oder nicht, ist eine gute Sache, die zumindest über MS Office-Produkte gesagt werden kann, wie einfach es ist, sie miteinander zu integrieren ... Weiterlesen und du kannst sogar Entwerfen Sie Ihren eigenen Internetbrowser So erstellen Sie Ihren eigenen einfachen Internetbrowser mit VBAWenn Sie wirklich aufhören, darüber nachzudenken, ist ein Internetbrowser in seiner einfachsten Form keine wirklich beeindruckende Anwendung. Ich meine, ja, das Internet ist für jedermanns Verhältnisse erstaunlich. Das Konzept der Verknüpfung ... Weiterlesen ! Es sind nicht nur Microsoft-Produkte. Es gibt Anwendungen von Drittanbietern aller Art von 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 als wahrscheinlich anzuschließen realisieren.
Die Idee
In diesem Fall verbinden Sie Excel mit dem Internet Explorer. Warum IE? Da 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 das Schöne an in. In diesem Artikel erfahren Sie, wie diese Automatisierung funktioniert, und in einem zukünftigen Artikel erfahren Sie, wie Sie mit anderen Browsern fast dasselbe tun.
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 cooler Dinge mit Ihrem Browser zu tun. Unter dem Strich erstellen Sie eine Excel-Tabelle, um schnell alle geöffneten Browserfenster mit einem Klick auf eine Schaltfläche zu speichern. Sie können diese Tabelle speichern und Ihren Computer verlassen oder ausschalten.
Kommen Sie eine Stunde oder drei Tage später zurück, öffnen Sie die Tabelle, klicken Sie auf eine andere Schaltfläche, und diese gespeicherten URLs werden in der gleichen Anzahl von Registerkarten wie zuvor wieder geöffnet. Die offensichtlich coole Verwendung davon wäre, eine ganze Bibliothek gängiger Online-Arbeitsbereichs-Setups in Excel zu speichern. Anschließend können Sie diesen Arbeitsbereich mit einem Klick auf eine Schaltfläche wiederherstellen, ohne alle diese URLs erneut suchen zu müssen.
Automatisieren des Internet Explorers mit VBA
Öffnen Sie zunächst Excel (ich verwende 2013 - andere Versionen sind in Bezug auf die VBA-Programmierung ähnlich) und rufen Sie den Menüpunkt Entwickler auf. Dort sehen Sie eine Schaltfläche zum Einfügen, mit der Sie alle Steuerelemente ablegen können. Wählen Sie das ActiveX-Drucktastensteuerelement aus und platzieren Sie es in Ihrer Tabelle.
Vermutlich haben Sie bereits einen Header für URLs erstellt, wenn Sie möchten, müssen dies aber nicht. Dies ist wirklich eine URL-Speicherbibliothek, daher spielen Header keine Rolle. Doppelklicken Sie nach dem Hinzufügen der Schaltfläche 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 setzen Sie die Beschriftung auf "URLs speichern". Dies 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ü Extras oben im VBA-Editor, klicken Sie im Menü auf Verweise und scrollen Sie in der langen Liste nach unten, um die Referenz „Microsoft Internet Controls“ zu finden. Aktivieren Sie das Kontrollkästchen links davon und klicken Sie dann auf OK.
Jetzt können Sie loslegen. Im Textbereich des Editors sollte eine Zeile mit der Aufschrift "Private Sub cmdSaveURLs_Click ()" angezeigt werden. Wenn Sie es nicht sehen, klicken Sie auf das linke Dropdown-Feld ü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 As New ShellWindows. IE_TabURL als String dimmen. Dim intRowPosition As Integer intRowPosition = 2 Für jeden IE In shellWins IE_TabURL = IE.LocationURL Wenn IE_TabURL <> vbNullString Then Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 End If Next Setze shellWins = Nichts. Setze IE = Nichts
Mit der Microsoft Scripting Runtime-Referenz können Sie auf das ShellWindows-Objekt zugreifen, mit dem Sie durch Windows iterieren und die geöffneten IE-Instanzen suchen können. Dieses Skript sucht jede geöffnete URL und schreibt sie in die Excel-Tabelle.
Wenn Sie also theoretisch an etwas wie Bloggen arbeiten und einige Elemente geöffnet haben, z. B. Forschungsfenster, Ihr Blog-Editor oder ein Kalenderfenster, sind alle diese Registerkarten aktiv. Wenn Sie herunterfahren oder in Eile gehen müssen, kann es sehr schwierig sein, durch Kopieren all dieser URLs zu speichern, wo Sie sich befinden.
Klicken Sie bei Ihrem neuen Excel-Skript einfach auf die Schaltfläche "URLs laden" und es wird direkt in die Tabelle geladen.
Eine Einschränkung. Wenn Sie keine Kopfzeile verwenden, möchten 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 Phase dieses Projekts besteht darin, in die andere Richtung zu gehen. Klicken Sie auf "URLs laden" und lassen Sie Excel den IE starten und alle URLs neu laden, die Sie in der Tabelle gespeichert haben. So sollte die Funktion cmdLoadURLs_Click () aussehen.
IE als Objekt dimmen. Dim ShellWins As New ShellWindows. IE_TabURL als String dimmen. Dim intRowPosition As Integer intRowPosition = 2 Setze IE = CreateObject ("InternetExplorer. Anwendung") IE.Visible = True IE.Navigate Sheet1.Range ("A" & intRowPosition) Während 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 intRowPosition = intRowPosition + 1. Wend Set IE = Nichts
Hier gibt es einige Schritte, aber wie Sie sehen, ist der Code nicht allzu lang oder kompliziert. Sie erstellen eine neue Instanz des IE und machen sie sichtbar (dies öffnet den IE, ohne eine URL zu laden). Als Nächstes wird die erste URL in die Liste geladen.
Der Teil "While IE.Busy" des Skripts wartet, bis die Seite vollständig geladen ist, und fährt dann mit den restlichen URLs in Ihrem Skript fort Wenn Sie eine neue Registerkarte öffnen (dies ist die Funktion von "CLng (2048)", bis eine leere Zelle in Ihrer Tabelle angezeigt wird, wird sie angehalten neue Registerkarten öffnen. Hier ist mein IE-Browser mit allen vier ursprünglichen Registerkarten, die mithilfe des Excel IE-Automatisierungsskripts wiederhergestellt wurden.
Zusammenfassung
Mein eigentliches Ziel dabei war es, dass einzelne Tabellenkalkulationen Sammlungen von Registerkarten für Aufgaben wie das Recherchieren und Schreiben in meinem eigenen Blog und das Schreiben einrichten bei MakeUseOf SEO-Projektarbeit auf der Website oder eine ganze Liste anderer Rollen oder Projekte, für die eine gespeicherte Sammlung von Registerkarten erforderlich ist, die immer vorhanden sind gebraucht.
Die Verwendung einer Tabelle zum Speichern dieser Setups und das automatische Öffnen in einem Browser kann viel Zeit sparen... und es ist auch ziemlich cool.
Verwenden Sie irgendeine Art von IE-Automatisierung in Ihren VBA-Anwendungen? Sehen Sie andere coole Anwendungen für diese Art von IE-Steuerung aus Excel? Teilen Sie Ihre Gedanken und Ihr Feedback im Kommentarbereich unten mit!
Ryan hat einen BSc-Abschluss in Elektrotechnik. Er hat 13 Jahre in der Automatisierungstechnik, 5 Jahre in der IT gearbeitet und ist jetzt Apps Engineer. Als ehemaliger Managing Editor von MakeUseOf sprach er auf nationalen Konferenzen zur Datenvisualisierung und wurde im nationalen Fernsehen und Radio vorgestellt.