We gaan naar de website:
https://www.gameshop.nl/webshop/index.php
Om wat gegevens van computerspellen binnen te halen middels VBA-Code.
Voeg onderstaande code toe:
1. Kopieer de onderstaande code middels Ctrl + C
2. Druk op de toetscombinatie ALT + F11 om de Visual Basic Editor te openen
3. Druk op de toetscombinatie ALT + N om het menu Invoegen te openen
4. Druk op M om een standaard module in te voegen
5. Daar waar de cursor knippert voeg je de code in middels Ctrl + V
6. Druk op de toetscombinatie ALT + Q om terug te keren naar het Excel werkblad
7. Tenslotte ga naar View | Macros | View macros en kies je de juiste macro.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Sub Get_That_Data() Dim HTMLdoc As HTMLDocument Dim xmlhttp As New MSXML2.XMLHTTP60 Dim platformLinks As Object, titles As Object, prices As Object, i As Integer Set xmlhttp = New MSXML2.XMLHTTP60 xmlhttp.Open "GET", "https://www.gameshop.nl/webshop/index.php", False xmlhttp.send Set HTMLdoc = CreateObject("htmlfile") HTMLdoc.body.innerHTML = xmlhttp.responseText 'LogInformation (HTMLdoc.body.innerHTML) ' Get elements by class name Set platformLinks = HTMLdoc.getElementsByClassName("platform-link") Set titles = HTMLdoc.getElementsByClassName("titel") Set prices = HTMLdoc.getElementsByClassName("prijs") ' Output results to Immediate Window (Ctrl+G in VBA editor to view) For i = 0 To platformLinks.Length - 1 Debug.Print "Platform: " & platformLinks.Item(i).innerText Debug.Print "Title: " & titles.Item(i).innerText Debug.Print "Price: " & prices.Item(i).innerText Debug.Print "----------------------------" Next i End Sub |
Je kunt de opgehaalde broncode van de webpagina loggen (vastleggen) in een tekstbestand ter referentie. In bovenstaande code staat deze zin:
‘LogInformation (HTMLdoc.body.innerHTML)
Haal de apostrof die aan het begin van de zin staat weg. Vervolgens onderstaande code toevoegen:
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub LogInformation(LogMessage As String) Dim fileNum As Integer Const LogFileName As String = "C:\temp\textfile.html" Open "C:\temp\textfile.html" For Output As #1: Close #1 Debug.Print "Clear complete" fileNum = FreeFile ' next file number Open LogFileName For Append As #fileNum ' creates the file if it doesn't exist Print #fileNum, LogMessage ' write information at the end of the text file Close #fileNum ' close the file End Sub |
Zorg dat je het bestand textfile.html in de juiste directory hebt staan namelijk:
C:\temp\textfile.html
Telkens als je logt wordt eerst de inhoud van dat bestand verwijderd en vervolgens wordt er nieuwe tekst naar geschreven.