Excel Office Script Basis
Inhoud
- Inleiding
- De Automatiseren tab zichtbaar krijgen
- De Automatiseren tab gebruiken
- Een Script starten
- Meer leesvoer
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. Ik heb ook voorbeeld scriptjes gemaakt 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.
- Ga naar https://office.com en klik
op de beheer knop:
- Klik in de beheeromgeving op het zoekvak en tik "Office Script"
en klik op de gevonden verwijzing zoals hieronder aangegeven:
- 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:
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:
- Open de beheeromgeving en klik op "Alles weergeven":
- Klik vervolgens op Instellingen, Organisatie-instellingen en scrol
dan omlaag tot Office Scripts in beeld komt. Klik daarop:
- 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:
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:
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:
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:
En natuurlijk heeft Microsoft de belangrijkste mogelijkheden verborgen achter de drie punten:
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, of door de Delen keuze te gebruiken, of door gebruik te maken van de Knop Toevoegen keuze (zie hieronder). 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:
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":
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:
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.
Een Script starten
Op het moment zijn er drie manieren om een script te starten:
- Door op "Uitvoeren" te klikken in het Script Code Editor venster
- Door een Run script trigger in een Power Automate Flow
- Door een knop toe te voegen (zie hieromder)
Nadat je "Knop Toevoegen" gekozen hebt zal Excel een knop invoegen met als titel de naam van het Script:
De knop wordt ingevoegd op de huidige actieve cel, dus het is verstandig eerst de cel te selecteren waar je de knop hebben wil.
Na een klik op de knop start het script en opent het Script Editor paneel om de voortgang te tonen:
Als het script klaar is, dan toont het venster het resultaat:
Een script knop werkt ook op desktop Excel, mits je de beschikking hebt over de nieuwste versie van Microsoft 365, op het moment echter alleen nog indien u deelneemt aan het Insider programma.
Meer leesvoer
Hier een artikel met script voorbeelden
Hierbij enkele koppelingen naar de (Engelse) documentatie van Microsoft over Office Scripts:
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.