Hämta data från Internet direkt till ett Excelark

Nivå: Avancerad

Med Excel’s QueryTables kan man bygga kraftfulla applikationer som hämtar data från en specifik plats på Internet, rakt ner till en Excelarbetsbok. Antag t.ex att du skulle vilja ha en arbetesbok i Excel där du samlar akutella boräntor. Det första vi måste ta reda på är vilka tjänster på nätet som vi kan använda oss av. Eftersom jag är en “text-tv-fantast” så har den statliga televisionen även text-tv utlagd på Internet. Den tjänsten är än så länge gratis!:)  (Jag menar, något skall man väl få för sina licenspengar, eller hur?:) Vad sägs om att ha ett makro i Excel, som automatiskt går ut på Internet och hämtar ner aktuella boräntor? Vi försöker skapa ett sånt makro. Nedan visar jag principen för hur ett sånt makro kan se ut:

Sidan vi skall hämta data ifrån på Internet
För att förstå stegen i makrot föreslår jag att vi först besöker SVT-text på Internet, med aktuella boräntor och den sida där t.ex Nordea’s boräntor presenteras. Besök adressen http://svt.se/svttext/web/pages/232.html för att se hur den sidan ser ut. Väl på sidan kan vi notera följande: Nordeas boräntor presenteras på sidan nummer 3 av totalt 5 sidor. (Tittar man högst upp till höger, kan man se att varje sida är numrerad.) I detta fall skrivs den sida vi är intresserade av som 3(5)). Denna information, dvs vilken tabell webbsidan med våra data har, skall vi notera. Den skall vi använda i vår kommande programmering.

Du kan hämta hem Excearket med tillhörande kod geno att klicka, webquery. När du laddat ner Excelarket, tryck tangenterna ALT+F11 om du vill läsa VBA-koden. För att testa exemplet klickar du på knappen Kör exemple webquery. (OBS!  Om du sitter bakom en brandvägg, kan det bli problem att köra exemplet, beroende på hur ditt nätverk är inställt!)

Några kommentarer till  vba-koden i Excelarket
I den första delen sätter vi in en ny kolumn i vårt kalkylark och är inga konstigheter. I den andra delen, som börjar under kommentaren, Hämta data från SVT-Text, kan vi notera att vi instansierar objekten vi skall använda. Principen för programmeringen är fölande:
1. Först talar vi om vart, vi skall hämta våra data ifrån. Lägg märke till att vi instansierar QueryTables samt att att vi talar om från vilken sida data skall hämtas. Data skall hämtas från den URL-adressen som står beskriven till Nordeas SVT-textsidor (se Nordeas länk ovan).
2. I den andra delen av koden måste vi tala om var på SVT-textsidan vi skall hämta våra data. Vi definierar att våra data med boräntor finns i en tabell på SVT-textsidan, och att denna tabell med datan har nummer 3. Detta är i princip den viktigaste koden för att hämta data till kalkylarket.
3. Resterande kod är egentligen valfritt. Koden handlar om olika typer av formateringar som vi vill att sidan skall ha när datan väl finns på kalkylarket. Här kan du experimenterar mer med layouten än vad jag har gjort i detta exempel.
Avslutligen: Querytables är ett mycket kraftfullt sätt att hämta ner data från Internet till en arbetsbok i Excel. När datan väl finns i Excel, är det möjligt att göra olika typer av beräkningar/kalkyler. Tänk på att dina inställningar i Excel måste vara att du godkänner att köra makron, för att exemplet skall fungera.

Share