Home Nieuwsbrief

This page in EnglishHome > Artikelen index >

Excel Office Script Basis

Inleiding

Sinds Juli 2020, kunnen Microsoft 365 gebruikers hun acties in Excel laten opnemen als Office Script macro's. Dit artikel laat zien hoe je daarmee aan de slag kunt gaan. Later zal ik ook voorbeeld scriptjes toevoegen die je niet kunt opnemen, maar wel nuttig zijn.

De Automatiseren tab zichtbaar krijgen

Allereerst moet het mogelijk gemaakt worden dat je Office script kunt opnemen. Dit moet worden gedaan door je Microsoft 365 administrator. Mocht je een eenmanszaak hebben, dan ben je dat mogelijk zelf. Zo niet, dan kan je jouw beheerder in ieder geval laten zien wat hij of zij moet doen om dat voor je te regelen.

  1. Ga naar https://office.com en klik op de beheer knop:
    De beheer knop op Office.com
  2. Klik in de beheeromgeving op het zoekvak en tik "Office Script" en klik op de gevonden verwijzing zoals hieronder aangegeven:
    Het Microsoft 365 Beheercentrum zoekvak  met Office Script
  3. Een taakvenster opent met de in te stellen mogelijkheden. merk op dat de beheerder iedereen toegang kan geven tot de Office scripts, maar ook alleen specifieke groepen. Ik heb het als volgt ingesteld staan:
    Microsoft 365 Beheercentrum Office Script instellingen

Vreemd genoeg probeerde ik later diezelfde stappen die ik hierboven beschreef nog eens te doen, maar ik kreeg toen geheel andere zoekresultaten. Daarom hier de handmatige stappen:

  1. Open de beheeromgeving en klik op "Alles weergeven":
    Microsoft 365 Beheercentrum Alle instellingen
  2. Klik vervolgens op Instellingen, Organisatie-instellingen en scrol dan omlaag tot Office Scripts in beeld komt. Klik daarop:
    Microsoft 365 Beheercentrum Office Scripts In Organisatie instellingen
  3. Dit geeft je hetzelfde venster als bij de vorige stap 3.

De Automatiseren tab gebruiken

Zodra de beheer wijziging doorgedrongen is tot jouw account (en dit kan echt wel even duren, wel twee hele dagen!), zou de Automatiseren tab in het lint zichtbaar moeten zijn als je een Excel bestand in je browser opent:

Automatiseren tab in Excel online

Laten we eens kijken welke opties we hebben.

Acties vastleggen knop

Wat, echt? Een online macro recorder? Jazeker, een online macro recorder!

Wat neemt deze recorder dan op? De Acties vastleggen knop neemt alle bewerkingsstappen op en vertaalt die naar een speciale versie van Office JavaScript (Office-JS). Gelukkig heeft Microsoft de moeite genomen om het meest gecompliceerde aspect van het programmeren van Office JavaScript voor de gebruiker te verbergen. Omdat JavaScript in de browser wordt uitgevoerd, moet het communiceren met een server (Excel online), hierdoor worden de meeste programmaopdrachten asynchroon verwerkt. Office JS code werkt dus niet hetzelfde als VBA code. VBA verwerkt iedere regel meteen. Dit betekent dat het "uitvoeren" van een regel JavaScript meer lijkt op het sturen van een verzoekje aan de server waarop Excel draait. Het is de taak van die server om dat verzoek uit te voeren, maar wanneer dat precies gebeurt dat weet jouw code niet. Je kan er dus niet vanuit gaan dat een regel is uitgevoerd voordat de volgende regel wordt verwerkt. Dit principe wordt goed uitgelegd in deze documentatie.

Maar ik zei het al, dit gecompliceerde aspect van Office Script is voor ons verborgen, waardoor Office Script min of meer hetzelfde werkt als VBA code.

De recorder start direct nadat je op de knop Acties vastleggen hebt geklikt. Je hoeft dus niet eerst een naam of locatie voor de macro op te geven, zoals wanneer je de VBA macro recorder start:

Het taakvenster Acties vastleggen in Excel online

Merk op dat er een linkje genaamd "Meer informatie" staat onderaan het venster. Dat verwijst naar de officiële Microsoft uitleg over het opnemen van scripts.

Ik deed drie dingen: Ik voegde een nieuw werkblad in, typte mijn naam in cel A1 en voerde de datum van vandaag in in cel A2. Het venster ziet er nu zo uit:

Het taakvenster Acties vastleggen in Excel online

De recorder heeft de stappen die ik uitvoerde opgenomen en er is een "Kopiëren als code" link verschenen. Als je daarop klikt wordt de code die tot nu toe is opgenomen op het klembord geplaatst. Verder is er een "Opnieuw starten" knop en een Stoppen knop. Opnieuw starten zorgt ervoor dat je opgenomen stappen worden verwijderd en Stoppen -nu ja- stopt de opname.

Klik je op Stoppen, dan wordt het scrip opgeslagen onder een standaard naam, die je later nog kunt wijzigen:

Het taakvenster Code-editor in Excel online

En natuurlijk heeft Microsoft de belangrijkste mogelijkheden verborgen achter de drie punten:

Het taakvenster Code-editor in Excel online

Dit is dus waar de mogelijkheid om je script een andere naam te geven is verborgen, evenals de mogelijkheid om je script met collega's te delen. En niet te vergeten de belangrijke mogelijkheid om een script deel uit te laten maken van een Flow (matig vertaald tot "Stroom").

Hoe ziet de opgenomen code er nu uit? Daarvoor klikken we op "Bewerken"! Hier zie je hoe mijn acties zijn vertaald naar Office Script:

Opgenomen Office Script Code in Excel online

Werk in uitvoering

Je zult al snel merken dat Office script nog werk-in-uitvoering is, er zijn acties die de recorder nog niet kan opnemen. Als dat gebeurt, dan toont het recordervenster de tekst "Deze actie kan nog niet worden opgenomen":

Acties die niet konden wornde opgenomen in Excel online

Deze niet opgenomen acties staan als commentaarregels in je code:

  // Unknown event received with eventId:578
  // Unknown event received with eventId:578

Microsoft werkt er hard aan om nieuwe acties aan de recorder toe te voegen. Ik was onder de indruk hoeveel acties er al waren toegevoegd sinds ik de script recorder voor het eerst had geprobeerd.

Nieuw Script knop

Als je het aandurft dan is dat de manier om direct te beginnen om zelf een Office Scripts te schrijven!

Recente Scripts galerij

Microsoft houdt een lijst bij van recent gebruikte of opgenomen scripts in de "Mijn recente scripts" galerij:

Recent Scripts gallery in Excel online

Het ligt voor de hand waarvoor de knop "Alle scripts" dient. Belangrijker voor beginners zijn wellicht de voorbeelden waar je hier ook uit kunt kiezen.

Zie je? Niks moeilijks aan. Ik stel voor dat je er eens mee gaat experimenteren. Probeer eens allerlei acties op te nemen.

Hier enkele voorbeelden van scripts die je niet kunt opnemen.

Meer leesvoer

Hierbij enkele koppelingen naar de (Engelse) documentatie van Microsoft over Office Scripts:

Office Scripts documentation

Office Scripts API reference

Introduction to Office Scripts in Excel

 


Vragen, suggesties en opmerkingen

Heeft u vragen, suggesties of opmerkingen? Gebruik dan dit formulier.

Mocht uw vraag niet direct relevant zijn voor deze pagina, maar een algemene Excel vraag betreffen, dan adviseer ik om deze hier te stellen: excelexperts.nl/forum/index.php.

Uw naam (verplicht veld):

Uw e-mail adres (Niet verplicht, dit adres wordt alleen gebruikt om u te informeren wanneer uw commentaar geplaatst wordt)

Uw verzoek of commentaar (max 2000 karakters):

Als u VBA code in uw commentaar plaatst, gebruik dan [VB] tags: [VB]Uw code[/VB].

Ik geef toestemming voor de verwerking van deze gegevens en voor de weergave van mijn naam en commentaar op deze website conform ons privacy beleid.