Visual Basic for Applications:
HTML analysieren

Wie geht das:

In VBA können Sie HTML mit der Microsoft HTML Object Library parsen. Fügen Sie in Ihrem VBA-Editor eine Referenz auf diese Bibliothek hinzu, indem Sie zu Werkzeuge > Verweise gehen und Microsoft HTML Object Library aktivieren. Das gibt Ihnen Zugang zu Klassen für die Navigation und Manipulation von HTML-Dokumenten.

Hier ist ein einfaches Beispiel, das zeigt, wie man ein HTML-Dokument aus einer Datei lädt und alle Links (Ankertags) extrahiert:

Sub ParseHTML()
    Dim htmlDoc As MSHTML.HTMLDocument
    Dim htmlElement As MSHTML.IHTMLElement
    Dim htmlElements As MSHTML.IHTMLElementCollection
    Dim htmlFile As String
    Dim fileContent As String
    
    ' HTML-Inhalt aus einer Datei laden
    htmlFile = "C:\Pfad\zu\deiner\datei.html"
    Open htmlFile For Input As #1
    fileContent = Input$(LOF(1), 1)
    Close #1
    
    ' HTML-Dokument initialisieren
    Set htmlDoc = New MSHTML.HTMLDocument
    htmlDoc.body.innerHTML = fileContent
    
    ' Alle Ankertags holen
    Set htmlElements = htmlDoc.getElementsByTagName("a")

    ' Durch alle Ankerelemente schleifen und das href-Attribut ausgeben
    For Each htmlElement In htmlElements
        Debug.Print htmlElement.getAttribute("href")
    Next htmlElement
End Sub

Dieses Skript liest den Inhalt einer HTML-Datei, lädt ihn in ein HTMLDocument-Objekt, ruft alle Ankerelemente (<a>-Tags) ab und iteriert dann über diese, indem es das href-Attribut jedes einzelnen im Direktfenster ausgibt.

Tiefer eintauchen:

Historisch gesehen war das Parsen von HTML in VBA etwas umständlich, da es an direkter Unterstützung für moderne Web-Scraping- und Dokumentenverarbeitungstechnologien fehlte. Die Microsoft HTML Object Library, obwohl mächtig, ist etwas veraltet und behandelt moderne Webstandards möglicherweise nicht so reibungslos wie neuere Technologien.

Für komplexe HTML-Parsing- und Web-Scraping-Aufgaben werden oft alternative Tools und Sprachen wie Python mit Bibliotheken wie Beautiful Soup oder Scrapy empfohlen. Diese modernen Werkzeuge bieten mehr Flexibilität, bessere Leistung und sind besser auf die aktuellen Webstandards abgestimmt. Wenn man jedoch innerhalb des Microsoft Office-Ökosystems arbeitet, bleibt die Verwendung von VBA mit der Microsoft HTML Object Library eine wertvolle Fähigkeit. Sie ermöglicht die direkte Manipulation von HTML-Inhalten auf eine Weise, die nahtlos mit Anwendungen wie Excel und Access integriert, und bietet eine unkomplizierte Methode für Aufgaben, die eine grundlegende Handhabung von HTML-Dokumenten erfordern, ohne die vertraute VBA-Umgebung verlassen zu müssen.