“Bør jeg lære VBA eller Power Query?”
Det spørsmålet får jeg hver uke. Og svaret er som regel: begge, men i ulike situasjoner.
Som Excel-konsulent bruker jeg både VBA og Power Query daglig. De overlapper delvis, men har tydelig ulike styrker. Å velge riktig verktøy for jobben kan spare deg for hundrevis av timer – og å velge feil kan koste deg like mye.
I denne guiden sammenligner vi VBA og Power Query rett frem. Du får konkrete eksempler på når du bør bruke hvilket, og når du bør kombinere dem.
Rask oversikt
VBA (Visual Basic for Applications)
Hva det er: Et programmeringsspråk innebygd i Excel som lar deg automatisere nesten hva som helst.
Styrker: – Total fleksibilitet – kan gjøre i prinsippet hva som helst – Samhandler med andre programmer (Outlook, Word, Access) – Kan bygge brukergrensesnitt (knapper, skjemaer) – Kraftfullt for komplekse forretningslogikkprosesser
Svakheter: – Krever programmeringskunnskap – Koden kan bli vanskelig å vedlikeholde – Ikke like transparent som Power Query – Kan innebære sikkerhetsrisiko hvis den kommer fra ukjente kilder
Power Query
Hva det er: Et verktøy for dataimport og datatransformasjon innebygd i Excel (tidligere et tillegg, nå standard).
Styrker: – Visuelt grensesnitt – ingen koding kreves – Transparent prosess (hvert trinn er tydelig synlig) – Oppdateres enkelt med nye data – Innebygd feilhåndtering – Raskt for store datamengder
Svakheter: – Begrenset til datatransformasjon – Kan ikke gjøre ting utenfor Excel – Mindre fleksibelt for kompleks forretningslogikk – Vanskeligere for betinget logikk basert på flere faktorer
Sammenligning: bruksområde for bruksområde
1. Importere data fra flere filer
Scenario: Du har 50 Excel-filer i en mappe. Alle data skal samles i én fil.
Power Query vinner her
Power Query er bygget for dette. Med noen få klikk kan du: 1. Peke på en mappe 2. Kombinere alle filene automatisk 3. Transformere data (fjerne kolonner, endre format) 4. Laste resultatet inn i Excel
Slik gjør du det: – Data > Get Data > From File > From Folder – Velg mappen din – Combine & Transform Data – Velg hvilke kolonner du vil ha – Load
Når nye filer legges til i mappen, klikker du bare “Refresh”, og de importeres automatisk.
VBA-alternativ: Du kan gjøre det samme med VBA, men det krever 30–40 linjer kode. For enkel dataimport er Power Query både raskere å sette opp og enklere å vedlikeholde.
Vinner: Power Query
2. Rense og transformere data
Scenario: Importerte data har feil format. Datoer er tekst. Kolonner har feil navn. Tomme rader finnes overalt.
Power Query vinner her
Power Query kalles noen ganger “Excel-datarens på steroider”. Hver transformasjon er et trinn du kan se og endre.
Vanlige transformasjoner: – Fjerne tomme rader – Endre datatype (tekst til dato, tekst til tall) – Dele kolonner (f.eks. “Fornavn Etternavn” til to kolonner) – Slå sammen kolonner – Filtrere rader basert på kriterier – Erstatte verdier (f.eks. alle “N/A” med 0)
Alt gjøres med klikk og menyer. Ingen koding.
VBA-alternativ: Det samme i VBA krever løkker, if-setninger og regex-kunnskap for komplekse tilfeller. Mulig, men mer tidkrevende.
Vinner: Power Query
3. Lage rapporter med spesifikk formatering
Scenario: Du trenger en rapport med bedriftens layout: logo øverst, overskriftsrader i bestemte farger, bunntekst, marger.
VBA vinner her
Power Query kan ikke formatere. Det importerer og transformerer data, men sluttresultatet er rådata i Excel.
VBA kan: – Formatere celler (farge, skrifttype, kantlinjer) – Legge til bilder og logoer – Tilpasse sidelayout for utskrift – Lage diagrammer og plassere dem – Sette topptekster og bunntekster
Eksempel: Vår guide om å automatisere Excel-rapporter viser et komplett VBA-system for formatert rapportgenerering.
Vinner: VBA
4. Sende data til andre programmer
Scenario: Når rapporten er ferdig, skal den sendes via Outlook til fem mottakere. Eller data skal eksporteres til en Access-database.
VBA vinner her
Power Query lever i Excel-verdenen. VBA kan snakke med hele Office-pakken og mer til.
VBA kan: – Opprette og sende e-post via Outlook – Skrive data til Access, SQL Server – Åpne og fylle ut Word-dokumenter – Lage PowerPoint-presentasjoner – Kalle opp eksterne API-er – Kjøre systemkommandoer
Eksempel:
' Skicka rapport via Outlook
Set OutlookApp = CreateObject("Outlook.Application")
Set Mail = OutlookApp.CreateItem(0)
Mail.To = "chef@företag.se"
Mail.Subject = "Veckorapport"
Mail.Attachments.Add "C:\Rapport.xlsx"
Mail.Send
Power Query kan ikke gjøre noe av dette.
Vinner: VBA
5. Håndtere store datamengder
Scenario: Du importerer en CSV-fil med 500 000 rader. Dataene skal filtreres, grupperes og oppsummeres.
Power Query vinner her
Power Query er optimalisert for store datamengder. Arbeidet gjøres “bak kulissene” i Power Query-motoren før dataene lastes inn i Excel.
Fordeler: – Håndterer millioner av rader (langt over Excels grense på 1 048 576 rader) – Raskere enn VBA for datatransformasjon – Mindre minnekrevende
VBA-alternativ: VBA kan håndtere store mengder, men blir tregt. For 500 000 rader kan et VBA-skript bruke flere minutter. Den samme operasjonen i Power Query tar sekunder.
Tips: Hvis dataene dine er større enn Excel kan håndtere, kan Power Query laste data direkte inn i en pivottabell eller Data Model uten å vise alle radene.
Vinner: Power Query
6. Bygge interaktive dashbord
Scenario: Brukeren skal kunne velge dato, produkt og region fra nedtrekkslister. Rapporten oppdateres automatisk.
VBA vinner her
Power Query kan filtrere data, men ikke lage interaktive grensesnitt.
VBA kan: – Lage nedtrekksmenyer som styrer data – Bygge knapper for ulike visninger – Lage userforms (dialogbokser) for brukerinput – Vise/skjule ark basert på brukerens valg – Oppdatere diagrammer dynamisk
Eksempel: Et dashbord med knapper som “Vis salg”, “Vis kostnader”, “Sammenlign måneder” krever VBA.
Vinner: VBA
7. Oppdatere data regelmessig
Scenario: Hver mandag importerer du data fra de samme kildene. Prosessen er nøyaktig den samme hver gang.
Power Query vinner her
En Power Query-spørring lagres i arbeidsboken. Når nye data kommer, klikker du “Refresh”, og alt oppdateres automatisk.
Fordeler: – Ingen makroer å kjøre – Ingen sikkerhetsvarsler – Transparent prosess (du ser nøyaktig hva som skjer) – Enklere å dele (andre kan oppdatere uten VBA-kunnskap)
VBA-alternativ: Du kan bygge en VBA-makro som gjør det samme, men det krever at brukeren kjører makroen og har makroer aktivert.
Vinner: Power Query
Når bør du bruke VBA?
Bruk VBA når du trenger:
1. Kompleks forretningslogikk Avanserte if-else-strukturer, løkker i løkker, beregninger som avhenger av mange betingelser.
2. Integrasjon med andre programmer E-post, Word, Access, databaser, API-er.
3. Formatering og layout Spesifikk rapportlayout, farger, diagrammer, utskriftsinnstillinger.
4. Brukergrensesnitt Knapper, skjemaer, dialogbokser, interaktive dashbord.
5. Tidsstyrt automatisering Makroer som kjøres ved bestemte hendelser (når en fil åpnes, når en celle endres).
6. Gjenta handlinger Automatisere manuelle trinn som tar lang tid (klikke, kopiere, lime inn).
Når bør du bruke Power Query?
Bruk Power Query når du trenger:
1. Importere data fra flere kilder Excel-filer, CSV, databaser, nettet, SharePoint.
2. Rense og transformere data Fjerne tomme rader, endre format, dele/slå sammen kolonner.
3. Kombinere data fra ulike kilder Merge (sammenslåing) eller Append (legge til rader).
4. Håndtere store datamengder Millioner av rader som Excel selv ikke kan vise.
5. Gjenta den samme dataprosessen regelmessig Importere fra de samme kildene hver måned/uke/dag.
6. Transparens og sporbarhet Hvert trinn dokumenteres automatisk og kan ses/endres.
Når bør du kombinere VBA og Power Query?
De kraftigste løsningene kombinerer ofte begge.
Eksempel 1: Automatisert rapportering – Power Query importerer og renser data fra 10 kilder – VBA lager en formatert rapport, legger til diagrammer og sender den på e-post
Eksempel 2: Dashbord – Power Query holder dataene oppdatert – VBA bygger et interaktivt grensesnitt og styrer hva som vises
Eksempel 3: Store datamengder – Power Query håndterer datatransformasjonen av millioner av rader – VBA bygger oppsummeringer og brukeropplevelsen
Slik kombinerer du dem:
Sub UppdateraOchGenerera()
' Refresh alla Power Query-frågor
ActiveWorkbook.RefreshAll
' Vänta tills refresh är klar
Do While Application.CalculationState <> xlDone
DoEvents
Loop
' Fortsätt med VBA-formatering
Call FormateraRapport
Call SkapaGrafer
Call SkickaEmail
End Sub
Læringskurve
Power Query: – Tid for å lære det grunnleggende: 2–4 timer – Tid til produktivitet: Samme dag – Krav: Forstå det grunnleggende i Excel
Du kan bli produktiv med Power Query svært raskt. Det visuelle grensesnittet gjør det intuitivt.
VBA: – Tid for å lære det grunnleggende: 1–2 dager – Tid til produktivitet: 1–2 uker – Krav: Grunnleggende programmeringsforståelse hjelper (men er ikke et krav)
VBA har en brattere læringskurve, men gir også mye mer fleksibilitet. Vårt VBA-kurs for nybegynnere tar deg fra null til fungerende makroer på én dag.
Beslutningstre: Hvilket verktøy bør jeg velge?
Følg dette treet for å bestemme deg:
Trenger du å formatere eller lage layout? → Ja: VBA → Nei: Gå videre
Trenger du å samhandle med andre programmer? → Ja: VBA → Nei: Gå videre
Handler det først og fremst om dataimport/transformasjon? → Ja: Power Query → Nei: Gå videre
Trenger du å bygge et brukergrensesnitt? → Ja: VBA → Nei: Gå videre
Håndterer du store datamengder (100 000+ rader)? → Ja: Power Query → Nei: Begge fungerer – velg det du er mest komfortabel med
Oppsummering
Power Query er best for: – Dataimport fra flere kilder – Datarensing og transformasjon – Store datamengder – Transparent, repeterbar databehandling – Når du vil at andre skal kunne oppdatere uten kodekunnskap
VBA er best for: – Kompleks forretningslogikk – Formatering og rapportlayout – Integrasjon med andre programmer – Interaktive grensesnitt – Tidsstyrt automatisering – Når du trenger total kontroll
Begge sammen er best for: – Avanserte rapporteringssystemer – Komplekse dashbord – Bedriftsautomatisering der både data og presentasjon er viktige
Neste steg
Vil du lære Power Query? Microsoft har utmerket innebygd dokumentasjon. Begynn med Data > Get Data og utforsk. Det er vanskelig å gjøre feil – hvert trinn kan angres.
Vil du lære VBA? Begynn med vår nybegynnerguide eller ta vårt VBA-kurs.
Usikker på hvilket verktøy som passer din situasjon? Book en gratis konsultasjon, så diskuterer vi ditt spesifikke behov og anbefaler riktig løsning.
Vil du ha begge bygget profesjonelt? Vi i Excel Department bygger løsninger som kombinerer Power Query og VBA for optimal automatisering. Kontakt oss for å diskutere prosjektet ditt.
Vanlige spørsmål
Kan Power Query erstatte VBA helt? Nei. De har ulike styrker. Power Query kan ikke formatere, ikke bygge grensesnitt og ikke samhandle med andre programmer.
Er Power Query enklere å lære enn VBA? Ja, betydelig. Power Query har et visuelt grensesnitt og krever ingen koding.
Kan VBA bruke Power Query? Ja, VBA kan oppdatere Power Query-spørringer og jobbe med resultatet.
Hva er raskest for store datamengder? Power Query er betydelig raskere for transformasjon av store datamengder.
Må jeg velge ett? Nei, lær begge. De utfyller hverandre perfekt.
Skrevet av Lukas Lilja, Excel Department. Vi bruker både VBA og Power Query daglig for å bygge optimale automatiseringsløsninger for svenske bedrifter.
Trenger dere hjelp med dette? Våre VBA-kurs hjelper dere – den første konsultasjonen er kostnadsfri.
Book en gratis samtale eller ring 010-264 20 20.

