Introduktion til Google Apps Scripts – Alternativ til VBA

Med Google Apps Script kan du automatisere funktioner i Google Sheets. Det giver dig et godt alternativ til VBA i Google’s officepakke.

Microsoft Office koster penge, og i dag findes der en række gode alternativer til officepakken. Ét godt alternativ er LibreOffice, som du kan downloade helt gratis og installere på både Windows, Mac og Linux. En anden mulighed er at bruge Google’s officepakke, der også er gratis og hvor du arbejder oppe i skyen.

En af de store forhindringer for at skifte fra Microsoft Office er hvis du arbejder med VBA. VBA er et scriptsprog hvor du kan automatisere processor i officepakken, hvilket især anvendes i Excel til at lave meget avancerede og professionelle excelfiler. Jeg har allerede skrevet lidt om hvad alternativet er i LibreOffice, og i denne artikel vil jeg så introducere dig til alternativet i Google’s officepakke. Det hedder Google Apps Script.

Hvad er Google Apps Script?

Google Apps Script er altså et scriptsprog du kan bruge til at automatisere processor i Google’s programmer. I virkeligheden er det javascripts du bruger for at bygge Google Apps Scripts, og du kan bygge scripts til alle mulige af Google’s programmer såsom Google Sheets, Google Drive og Gmail.

Generelt skelnes der mellem to typer af Google Apps Scripts:

  • Bound scripts: er Google Apps Scripts som er bundet til en bestemt Google Sheet fil eller lignende og derfor kun virker her. Dette svarer nok allermest til VBA i officepakken, der som udgangspunkt også er bundet til en enkelt fil.
  • Standalone scripts: er Google Apps Scripts der er uafhængig af bestemte filer og dermed blot udfører et bestemt arbejde på tværs af Google’s tjenester.

Bound scripts findes som sagt bundet til en enkelt fil, og du vil kunne se dem oppe i menuen under “Tilføjelser”. Der findes også mange bound scripts som andre har lavet og som du kan bruge. Som for eksempel et script der tjekker efter duplikerede poster i en Google Sheets fil.

Byg dit første Google Apps Script

Lad os prøve at bygge det første Google Apps Script. Det vil vi bygge som et bound script på en Google Sheet fil. Derfor åbner du først Google Drive og opretter en ny Google Sheet fil. Så vælger du Værktøjer -> Scripteditor for at oprette et nyt script.

Dette åbner for scripteditoren. I forvejen er der allerede oprettet den første funktion med navnet myFunction. Bemærk her at for at oprette en funktion starter man med koden function og herefter navnet på funktionen. Så efterfølges to parenteser hvor man også kan definere forskellige inputs til funktioner (den tager vi senere). Herefter kommer to tuborg-parenteser hvor selve koden for funktionen findes i.

function myFunction() {
 
}

Oppe i toppen kan du oprette et navn til funktionen. I dette tilfælde kalder jeg den bare “Test1”.

Lad os så starte med at tilføje noget nyt kode. Jeg definerer nu en ny variabel kaldet “ss” der svarer til den aktive Google Sheet fil. Herefter definerer jeg en variabel “sheet” der svarer til det første ark i denne Google sheet fil. Så definerer jeg en variabel “cell” der svarer til celle A1 (række 1, kolonne 1) og til slut sætter jeg værdien 5 i A1.

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell = sheet.getRange(1,1);
cell.setValue(5);

Når jeg har indtastet denne kode mellem de to tuborg-klammer, vil jeg teste den. Det gør jeg ved at trykke på play-knappen i toppen. Første gang jeg kører et script, skal den autoriseres. Jeg trykker derfor på Gennemse tilladelser og gennemfører så autorisationen. Hvis du løber inden i problemer med autorisation eller er i tvivl, kan du læse hvordan du gør her.

Herefter køres scriptet og du vil så kunne se at der i A1 står 5 efterfølgende. Når du kører scriptet efterfølgende, skal det ikke autoriseres igen.

Jeg kunne også vælge at det var noge tekst der skulle tilføjes til feltet. Og hvis jeg vil have det indsat i B1 i stedet for A1, skriver jeg blot setRange(1,2) i stedet for setRange(1,1).

var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheets()[0];
 var cell = sheet.getRange(1,2);
 cell.setValue("Hello World");

Kører jeg denne står der “Hello World” i B1.

Jeg har nu vist dig hvad Google Apps Script er, og vi har lavet et simpelt bound script i en Google Sheets fil. Der vil komme flere artikler omkring hvordan du laver mere avancerede scripts. Hvis du har nogle spørgsmål er du velkommen til at skrive en kommentar.

Skriv et svar