Visual Basic for Applications:
Analisi del HTML

Come fare:

In VBA, è possibile eseguire il parsing di HTML usando la Microsoft HTML Object Library. Aggiungi un riferimento a questa libreria nel tuo editor VBA andando in Strumenti > Riferimenti e selezionando Microsoft HTML Object Library. Questo ti dà accesso alle classi per navigare e manipolare i documenti HTML.

Ecco un esempio semplice che mostra come caricare un documento HTML da un file ed estrarre tutti i link (tag di ancoraggio):

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
    
    ' Carica il contenuto HTML da un file
    htmlFile = "C:\percorso\al\tuo\file.html"
    Open htmlFile For Input As #1
    fileContent = Input$(LOF(1), 1)
    Close #1
    
    ' Inizializza il Documento HTML
    Set htmlDoc = New MSHTML.HTMLDocument
    htmlDoc.body.innerHTML = fileContent
    
    ' Ottieni tutti i tag di ancoraggio
    Set htmlElements = htmlDoc.getElementsByTagName("a")

    ' Cicla attraverso tutti gli elementi di ancoraggio e stampa l'attributo href
    For Each htmlElement In htmlElements
        Debug.Print htmlElement.getAttribute("href")
    Next htmlElement
End Sub

Questo script legge il contenuto di un file HTML, lo carica in un oggetto HTMLDocument, recupera tutti gli elementi di ancoraggio (<a> tag), e poi itera su di essi, stampando l’attributo href di ciascuno nella Finestra Immediata.

Approfondimento:

Storicamente, il parsing di HTML in VBA è stato un po’ macchinoso a causa della mancanza di supporto diretto per le moderne tecnologie di web scraping e di gestione dei documenti. La Microsoft HTML Object Library, nonostante sia potente, è in qualche modo datata e potrebbe non gestire gli standard web moderni con la stessa fluidità delle tecnologie più recenti.

Per compiti complessi di parsing HTML e web scraping, sono spesso consigliati strumenti e linguaggi alternativi come Python con librerie come Beautiful Soup o Scrapy. Questi strumenti moderni offrono maggiore flessibilità, migliori prestazioni e sono più in linea con gli standard web attuali. Tuttavia, quando si lavora all’interno dell’ecosistema di Microsoft Office, l’utilizzo di VBA con la Microsoft HTML Object Library rimane una competenza preziosa. Esso sblocca la manipolazione diretta dei contenuti HTML in un modo che si integra perfettamente con applicazioni come Excel e Access, fornendo un metodo diretto per svolgere compiti che coinvolgono la gestione di documenti HTML di base senza la necessità di uscire dall’ambiente VBA familiare.