Search
Close this search box.

Visual Basic for Applications (VBA) en Microsoft Excel

Macroprogrammering

Excel voor Windows ondersteunt het programmeren met behulp van Visual Basic for Applications (VBA), een afgeleide van Visual Basic. Programmeren met VBA maakt het mogelijk om allerlei manipulaties met spreadsheets te doen die standaard moeilijk of onmogelijk zijn. De Visual Basic Editor (VBE) beschikt over een venster voor het schrijven, debugging en het organiseren van de omgeving van de codemodule. De gebruiker kan numerieke functies gebruiken en taken automatiseren zoals formatteren of gegevensorganisatie in VBA en berekeningen zo organiseren dat gebruik kan worden gemaakt van tussenresultaten die naar de spreadsheet worden gestuurd.

De Mac-versie van Excel 2008 bevatte geen VBA meer, omdat de ontwikkelaars niet geloofden dat ze de VBA-engine tijdig klaar zouden hebben om naar het Mac OS X te kunnen porten. VBA werd in de volgende versie, Mac Excel 2011, weer in ere hersteld, hoewel zonder ondersteuning voor ActiveX-objecten, wat invloed had op een aantal hoogwaardige ontwikkeltools.

Een eenvoudige manier om VBA-code te genereren is met behulp van de Macro Recorder. De Macro Recorder neemt acties van de gebruiker op en genereert VBA-code in de vorm van een macro. Deze handelingen kunnen dan automatisch worden herhaald door de macro uit te voeren. Deze macro’s kunnen vervolgens ook worden gekoppeld aan verschillende soorten triggers, zoals sneltoetsen, opdrachtknoppen of afbeeldingen. De acties in de macro kunnen worden uitgevoerd via dit soort triggers of via de standaard opties op de werkbalk. De VBA-code van de macro kan in de VBE ook worden bewerkt. Bepaalde functies, zoals lus-functies en prompts op het scherm, en bepaalde grafische weergaveobjecten, kunnen niet worden opgenomen maar moeten door de programmeur rechtstreeks in de VBA-module worden ingevoerd. Gevorderde gebruikers kunnen prompts gebruiken om een interactief programma te maken, of om te reageren op gebeurtenissen zoals gegevens die worden geladen of gewijzigd.

Code die met de Macro Recorder is opgenomen is niet altijd uitwisselbaar tussen verschillende versies van Excel. Bepaalde code die in Excel 2010 wordt gebruikt kan niet worden gebruikt in Excel 2003. En een macro die celkleuren en andere eigenschappen van cellen verandert, is niet altijd uitwisselbaar.

VBA-code werkt met het spreadsheet samen via het Excel Object Model, een verzameling die objecten in het spreadsheet identificeert, en een set van functies of methoden die het mogelijk maakt om naar het spreadsheet te lezen en schrijven en met de gebruikers samen te werken, bijvoorbeeld door middel van aangepaste werkbalken of commandoregels en berichtvakken. Door de gebruiker gemaakte VBA subroutines voeren deze acties uit en werken net als macro’s die met de Macro Recorder zijn gemaakt, maar zijn flexibeler en efficiënter.

Geschiedenis

Vanaf de eerste versie ondersteunde Excel het programmeren van macro’s door gebruikers (het automatiseren van vaak herhaalde taken) en door de gebruiker gedefinieerde functies (het uitbreiden van de ingebouwde functiebibliotheek van Excel). In vroege versies van Excel werden deze programma’s in een macrotaal geschreven die een formulesyntaxis had en zich in speciale cellen van macrobladen bevond (in Windows met de bestandsextensie .XLM). Tot Excel 4.0 was XLM de standaard macrotaal van Excel. Vanaf versie 5.0 werden macro’s in Excel standaard opgeslagen in VBA, hoewel in versie 5.0. XLM nog als optie was toegestaan. Na versie 5.0 werd die optie verwijderd. Wel zijn alle versies van Excel nog in staat om een XLM-macro te runnen, hoewel Microsoft het gebruik ervan ontmoedigt.

Grafieken

Excel ondersteunt tabellen, grafieken en histogrammen die gegenereerd zijn op basis van bepaalde groepen cellen. Het gegenereerde grafische element kan in het blad geïntegreerd worden, of als afzonderlijk object worden toegevoegd.

Deze weergave wordt dynamisch bijgewerkt wanneer de inhoud van de cellen wijzigt. Stel dat de belangrijkste ontwerpeisen visueel worden weergegeven; in reactie op wijzigingen die een gebruiker aanbrengt in testwaarden, verandert de vorm van het ontwerp en verschuiven de snijpunten, zodat de optimale keuze van het ontwerp kan worden gemaakt.

Meer lezen over Microsoft Excel? Klik hier voor hoofdstuk 1 of hier om terug te keren naar de homepagina van onze FlorijnWiki-pagina’s.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.