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, so viele der Computer und mobilen Geräte der Welt in diesem riesigen Netzwerk zu verbinden, ist episch. Aber das Konzept, eine Textdatei mit speziellem Code zu übertragen und den übertragenen Text auf dem Computerbildschirm anzuzeigen, ist keine große Sache.
Dank der eingebetteten Referenzen in Anwendungen, die VBA verwenden, können Sie Webseiten über Ihre eigenen Anwendungen eingeben und ausgeben. Wenn Sie unseren letzten Scripting-Artikel gefolgt sind, dann wissen Sie, dass wir VB-Skript und VBA lieben, wie mein Artikel über die Maximierung von Windows 3 Wege zum Öffnen von Anwendungen und Windows maximiert mit VB-Skript [Windows] 3 Möglichkeiten zum Öffnen von Anwendungen und Windows maximiert mit VB Skript [Windows] Wenn ich etwas sehr gerne mache, schreibe ich VB-Skripte. Ob es sich um eine Windows Script-Datei oder ein VBA-Skript in einer Anwendung handelt, Scripting bietet die Möglichkeit, Anwendungen Funktionen hinzuzufügen ... Lesen Sie mehr, Pauls auf selbstaktualisierenden Diagrammen So erstellen Sie selbstaktualisierende Excel-Diagramme in drei einfachen Schritten Erstellen Selbstaktualisierende Excel-Diagramme in drei einfachen Schritten Wir zeigen Ihnen, wie Sie Ihre Excel-Diagramme selbst aktualisieren können. Fügen Sie einfach neue Daten hinzu und beobachten Sie, wie sie automatisch in Ihrem Diagramm angezeigt werden. Es ist schnell und einfach. Lesen Sie mehr, und Saikat ist auf das Versenden von Massen-E-Mails Wie man personalisierte Massen-E-Mails in Outlook mit Seriendruck senden Wie man personalisierte Massen-E-Mails in Outlook mit Seriendruck senden Lesen Sie mehr.
Mit der folgenden Vorgehensweise können Sie Word, Access oder Excel verwenden, um HTML-Dokumente im Web zu lesen, diese Dokumente zu ändern und dann die gewünschten Ergebnisse in einem neuen Browserfenster auszugeben.
Es klingt vielleicht nach etwas, das nur ein erfahrener VBA-Programmierer kann, aber in diesem Artikel werde ich Ihnen zeigen, wie Sie das selbst tun können, beginnend mit einem grundlegenden Verfahren, um Daten aus Ihrer eigenen Anwendung auf eine Webseite auszugeben.
Aktivieren von Microsoft Internet Controls
Der erste Schritt besteht darin, die Microsoft Internet Controls-Referenz zu aktivieren, unabhängig davon, wie Sie die Möglichkeit zur Eingabe / Ausgabe Ihres eigenen HTML-Codes über VBA nutzen möchten.
In Excel tun Sie dies, indem Sie auf den Menüeintrag " Entwickler " klicken, auf Entwurfsmodus klicken und dann auf die Schaltfläche " Code anzeigen" klicken. In älteren Versionen von Excel mag das anders aussehen, aber Sie müssen im Wesentlichen herausfinden, wo Sie den VBA-Code-Editor starten können.
Klicken Sie im VBA-Editor auf Extras und dann auf Verweise .
Führen Sie in dem Fenster Verweise einen Bildlauf vollständig durch, bis Sie " Microsoft Internet Controls " anzeigen . Aktivieren Sie das Kontrollkästchen und klicken Sie dann auf " OK ".
Jetzt können Sie in Ihrem VBA-Code Objekte erstellen, die Informationen aus dem Internet abrufen können, und Sie können eigene HTML-Dokumente ausgeben, die der Benutzer in seinem eigenen Browser anzeigen kann.
Eingabe und Ausgabe von HTML
Das erste, was Sie hier erreichen wollen, ist die Ausgabe von Informationen in HTML. Überlegen Sie, wie viel Sie tun können, wenn Sie Informationen auf einer perfekt formatierten HTML-Webseite ausgeben können. Sie können Daten aus Ihren Excel-Tabellen extrahieren und sie in einem schön formatierten Bericht ausgeben.
Um diese Funktion zu erstellen, müssen Sie eine Befehlsschaltfläche in Ihr Blatt einfügen. Klicken Sie im Menü Entwickler auf Entwurfsmodus, und klicken Sie dann auf die Schaltfläche " Einfügen ". Sie sehen eine Dropdown-Liste mit Steuerelementen, die Sie Ihrem Arbeitsblatt hinzufügen können.
Klicken Sie in diesem Fall auf das Schaltflächen-Steuerelement und legen Sie es in Ihr Blatt ein. Stellen Sie sicher, dass sich im Blatt (oder in einem beliebigen Blatt) Daten befinden, die beim Klicken auf die Schaltfläche in einen Bericht ausgegeben werden sollen. Klicken Sie mit der linken Maustaste auf die Schaltfläche, um sie auszuwählen, und klicken Sie auf " Code anzeigen ".
Geben Sie den folgenden Code ein:
Unter Button1_Click ()
Dim ObjIE als Objekt
Dim HTML als Zeichenfolge
'---------- Der HTML-Code geht von hier nach unten ----------
HTML = "HTML-Berichtsseite" & _
"" & _
" Die folgenden Ergebnisse stammen aus Ihrer täglichen Berechnung " & _
""& _
Tägliche Produktion: & Sheet1.Cells (1, 1) &"& _
"Daily Scrap:" & Sheet1.Cells (1, 2) & ""
'---------- Der HTML-Code geht HIER UND OBEN ---------
Bei Fehler GoTo error_handler
Setze objIE = CreateObject ("InternetExplorer.Application")
Mit objIE
.Navigieren "über: leer"
Während.Busy: DoEvents: Schleife
Während .ReadyState 4: DoEvents: Schleife
.Visible = Wahr
.Dokument.Schreibe HTML
Ende mit
Stellen Sie objIE = Nichts ein
Exit Sub
error_handler:
MsgBox ("Unerwarteter Fehler, ich beende.")
objIE.Quit
Stellen Sie objIE = Nichts ein
End Sub
Dieser Code gibt den HTML-Code aus, den Sie in dieser Ausgabezeichenfolge definiert haben. Wie Sie in meinem obigen Beispiel sehen können, können Sie Daten von jedem Blatt in Excel in Ihre HTML-Zeichenfolge einbetten. Hier ist der resultierende Webseitenbericht:
Nun, da die HTML-Ausgabe funktioniert, besteht der nächste Schritt, um Ihr VBA-Skript virtuell wie einen Webbrowser arbeiten zu lassen, darin, HTML von einer Website zu lesen, die Daten zu bearbeiten und dann in eine HTML-Ausgabeseite auszugeben.
Unter Button1_Click ()
Dim ObjIE als Objekt
Dim HTML als Zeichenfolge
Bei Fehler GoTo error_handler
Setze objIE = CreateObject ("InternetExplorer.Application")
Mit objIE
.Navigieren Sie "http://www.google.com"
Während.Busy: DoEvents: Schleife
Während .ReadyState 4: DoEvents: Schleife
.Visible = Wahr
HTML = objIE.Document.Body.innerHTML
.Document.Write "Meine eigenen Google-Ergebnisse!Dies ist eine bearbeitete Version der Google-Seite!
"& HTML &"
Ende mit
Stellen Sie objIE = Nichts ein
Exit Sub
error_handler:
MsgBox ("Unerwarteter Fehler, ich beende.")
objIE.Quit
Stellen Sie objIE = Nichts ein
End Sub
Was ich hier getan habe, ist das IE-Objekt verwendet, um HTML von Google in eine Textvariable in VBA HTML genannt zu lesen. Ich habe dann meinen eigenen HTML-Ausgabetext oben auf der Seite platziert und dann denselben HTML-Code an die VBA-HTML-Ausgabe ausgegeben. So sieht das aus:
Dies ist ein sehr einfaches Beispiel dafür. Aber wenn Sie darüber nachdenken: Sobald Sie den HTML-Code einer Webseite in Ihre VBA-String-Variable geladen haben, können Sie nach bestimmten Zeilen auf der Seite suchen, nach Bildern suchen, E-Mail-Adressen von Telefonnummern suchen - oder das Ganze neu schreiben Geben Sie die Seite in eine neue, bearbeitete Version der gleichen Seite in dem von Ihnen gewünschten Format und mit allen gewünschten Änderungen ein.
Dies würde ein bisschen Manipulation der Strings erfordern - aber nichts ist unmöglich, wenn Sie die HTML-Quelle aus dem Internet gelesen haben.
Sehen Sie Potenzial für die Verwendung von HTML-Eingabe oder Ausgabe in Ihren eigenen Anwendungen? Kannst du an irgendwelche coolen Anwendungen für dieses Skript denken? Teilen Sie Ihre Gedanken in den Kommentaren unten.
Bildnachweis: Shutterstock