Visual Basic for Applications:
Verkkosivun lataaminen

Kuinka:

Voit ladata web-sivun VBA:lla käyttämällä Microsoft XML, v6.0 (MSXML6) -kirjastoa, joka mahdollistaa palvelimen HTTP-pyynnöt. Ennen koodiin sukeltamista, varmista, että olet ottanut tämän viitteen käyttöön VBA-editorissasi menemällä kohtaan Työkalut -> Viitteet ja merkitsemällä Microsoft XML, v6.0.

Tässä on yksinkertainen esimerkki siitä, kuinka ladata web-sivun HTML-sisältö:

Sub DownloadWebPage()
    Dim request As Object
    Dim url As String
    Dim response As String
    
    ' Alusta XML HTTP -pyyntöobjekti
    Set request = CreateObject("MSXML2.XMLHTTP")
    
    url = "http://www.example.com"
    
    ' Avaa synkronoitu pyyntö
    request.Open "GET", url, False
    
    ' Lähetä pyyntö palvelimelle
    request.send
    
    ' Hanki vastausteksti
    response = request.responseText
    
    ' Tulosta vastaus välittömästi ikkunaan (virheenkorjaustarkoituksiin)
    Debug.Print response
    
    ' Siivoa
    Set request = Nothing
End Sub

Tämä alirutiinin suoritus tulostaa HTML:n http://www.example.com-osoitteesta VBA-editorin Välitön-ikkunaan. Huomaa, että False-parametri Open-metodissa tekee pyynnöstä synkronisen, mikä tarkoittaa, että koodi odottaa, kunnes verkkosivu on ladattu, ennen kuin siirtyy seuraavalle riville.

Syväsukellus

Esitelty tekniikka perustuu MSXML:ään, Microsoftin toteutukseen XML HTTP -pyyntöstandardista, jota käytetään usein AJAX-pyyntöihin web-kehityksessä. Tämä komponentti on ollut osa Microsoftin teknologiapinoa jo pitkän aikaa, tehden siitä vankan valinnan verkkopyyntöihin VBA:ssa.

Kuitenkin nojautuminen MSXML:ään ja VBA:han web-sisällön lataamiseen ja jäsentämiseen voi olla rajoittavaa, erityisesti nykyaikaisten web-sovellusten kanssa, jotka käyttävät raskaasti JavaScriptiä dynaamisen sisällön renderöinnissä. Nämä rajoitteet saattavat tehdä muista kielistä tai työkaluista, kuten Pythonista kirjastoineen, kuten BeautifulSoup tai Selenium, sopivampia web-skaalaustehtäviin niiden kyvyn vuoksi suorittaa JavaScriptiä ja käsitellä monimutkaisia verkkosivustojen vuorovaikutuksia.

Huolimatta tästä, yksinkertaisiin tehtäviin, jotka sisältävät suoraviivaista HTML-sisällön noutamista tai kun työskennellään Office-sovellusten rajoissa, VBA pysyy käytännöllisenä työkaluna. Sen integraatio Office-pakettiin mahdollistaa suoran asiakirjojen käsittelyn web-sisällön perusteella, tarjoten ainutlaatuisen edun tietyissä käyttötapauksissa.