Leer in dit artikel de basisbeginselen van objectgeoriënteerd programmeren in Excel (en ook wat objecten zijn). In mijn boek Het complete Boek Excel VBA voor professionals, 4e editie ga ik uiteraard beduidend dieper in op deze materie, maar hier alvast een eerste kennismaking!
Tot de belangrijkste bouwstenen voor het programmeren in VBA horen de objecten. Een object is een voorwerp, bijvoorbeeld een cel of een werkblad. Elk object kan op zijn beurt ook weer objecten bevatten. Het hele programma Excel bijvoorbeeld is een object. De werkmappen waarmee het programma werkt, zijn objecten, elke werkmap bestaat uit een aantal werkbladen, een selectie van cellen is een object en het kleinste object is één cel. U kwam eerder al Range tegen: het object Range is een gebied dat bestaat uit een aantal cellen.
- Ter vergelijking: MS-DOS is (of liever: was) een tekengeoriënteerd systeem, dat wil zeggen dat de computer zijn commando’s via ingevoerde lettertekens krijgt. Daarin betekent bijvoorbeeld
chdirofcd:ga naar een bepaalde map (‘Change Directory’).


Met objecten werken
Het meest gebruikte object in Excel VBA is Range. Dit is een gebied in het werkblad van één cel of een rechthoek van cellen, van een of meer rijen dan wel een of meer kolommen. Wilt u in de code naar de enkele cel B3 verwijzen, dan kan dat op een van de volgende manieren; deze cel staat in het actieve werkblad.

- Het verschil tussen Range en Cells wordt uitgelegd in de paragraaf Cel markeren met Range of met Cells.
Andere objecten in een werkmap zijn bijvoorbeeld:

Wilt u werken met meer kolommen, dan typt u de desbetreffende kolomletters op de plaats waar in de voorbeelden “A:A” staat. U geeft bijvoorbeeld de kolommen A tot en met E op met:
Columns(“A:E”)
De rijen 1 tot en met 10 duidt u aan met:
Rows(“1:10")
- Voor codes om een gebied van cellen te selecteren, zie de paragraaf Gebied selecteren elders in het boek.

Werken met een verzameling
Een verzameling bestaat uit objecten van dezelfde soort. Werkbladen bijvoorbeeld vormen een verzameling. Meestal is de naam van de verzameling het meervoud van de objecten; zo is Workbooks de verzameling van de geopende werkmappen.
Een verzameling is op zijn beurt ook weer een object en die kunt u als geheel behandelen. Zo sluit u met de methode Close alle geopende werkmappen tegelijk:
Workbooks.Close
Het programma Excel blijft wel actief, alle werkmappen worden gesloten.
Wilt u met één object uit de verzameling werken, dan typt u dat tussen aanhalingstekens en tussen haakjes, na de naam van de verzameling. Standaard heet het eerste werkblad Blad1, u duidt Blad1 van de verzameling Worksheets aan als:
Worksheets(“Blad1")
Of gebruik het volgnummer. U duidt het tweede werkblad uit de verzameling werkbladen aan met:
Worksheets(2)
U mag in plaats van Worksheets ook het kortere Sheets gebruiken; deze verzameling bestaat uit alle werkbladen, inclusief eventuele grafieken die op aparte werkbladen staan.
✒️ Wel of geen aanhalingstekens
Als u uit een verzameling het object met de naam aanduidt, gebruikt u aanhalingstekens. Gebruikt u het volgnummer, dan typt u alleen een getal.
U gaat naar cel A1 op Blad1 met:
Sheets(“Blad1").Range(”A1").Select
U kunt de verwijzing naar de verzameling werkbladen (Sheets) ook weglaten en alleen de naam van het eerste werkblad gebruiken, als volgt.
Blad1.Range(“A1").Select
Zoals u ziet, plaatst u in het eerste geval de naam van het werkblad tussen haakjes en tussen dubbele aanhalingstekens: (“Blad1"). In het tweede geval gebruikt u het enkele Blad1, meteen gevolgd door de punt.
Met de eigenschap Count telt u het aantal objecten dat zich in een verzameling bevindt. De volgende code telt hoeveel werkbladen deze werkmap bevat en geeft dat aantal in een berichtvenster weer.

De volgende code laat zien uit hoeveel cellen een heel werkblad bestaat.

Met de eerste regel wordt het aantal cellen van het actieve werkblad geteld. De tweede regel maakt dit aantal op met een punt tussen de duizendtallen. De derde regel geeft dit resultaat in een berichtvenster weer. De uitkomt is ruim 17 miljard.
- Als u in plaats van
CountLargede kortere eigenschapCountgebruikt, zal deze de foutmelding ‘Overloop’ geven, als het aantal cellen van de selectie te groot is. Dat komt doordat Count is ontworpen voor werkbladen in Excel 2003, die ruim 16 miljoen cellen bevatten. Voor een groter aantal cellen gebruikt u de eigenschapCountLarge. Deze kan het maximum van alle 17 miljard cellen van het werkblad in Excel 2021 aan.
Het Complete Boek Excel VBA voor professionals
Als u vaak dezelfde bewerkingen in Excel uitvoert, laat ze dan door een macro doen. Die doet het automatisch, supersnel en nauwkeurig. Zo bespaart u zeeën van tijd, wordt uw werk gemakkelijker en profiteert u meer van de kracht van Excel. Macro’s worden geschreven in de taal VBA (Visual Basic for Applications). Daarin kunt u ook eigen rekenfuncties schrijven en dialoogvensters ontwerpen, waardoor u Excel nog krachtiger en veelzijdiger maakt.
In dit boek vindt u 550 macro’s en 40 rekenfuncties. Bij alle voorbeelden wordt stap voor stap uitgelegd hoe ze werken. Zo leert u in Het Complete Boek Excel VBA voor professionals de principes van VBA en kunt u ze aanpassen voor uw eigen werk.
Meer tips over Microsoft Excel:

Verwijzingen absoluut maken in Excel
Met het verwijzingen absoluut maken in Excel, zorg je voor meer controle over je rekenwerk. In voorkomende gevallen is dat verdraaid handig en zelfs noodzakelijk.

Excel Werkblad snel kopiëren naar een ander bestand
U kunt een Excel werkblad snel kopiëren naar Een ander bestand. Hoe, dat leest u in deze blogpost.

Werkbladen met maanden en weken in Excel
Werkbladen met maanden en weken maken in Excel is prima automatisch te regelen, zoals u in dit artikel kunt lezen.

Tijdsverschillen berekenen in Excel
Hoe laat is het op dit moment in – laten we zeggen – Shanghai? Tijdsverschillen berekenen in Excel is heel eenvoudig! In deze blogpost laat ik zien hoe je dat doet.

Objectgeoriënteerd programmeren in Excel
Leer in dit artikel de basisbeginselen van objectgeoriënteerd programmeren in Excel (en ook wat objecten zijn).

Een Excel-macro genereren met ChatGPT
ChatGPT kan niet alleen goed overweg met tekst, maar ook met code. Een Excel-macro genereren met ChatGPT blijkt verrassend goed te gaan.
Alle Excel-tips en trucs op Computer Creatief vind je HIER

Wim de Groot schrijft artikelen over Excel voor het populaire tijdschrift ComputerIdee en boeken bij van Duuren Media. Als freelance auteur heeft hij al vele lezers weten te boeien met dit rekenprogramma. Hij begeleidt in de gezondheidszorg mensen op het gebied van levensvragen. Daarbij is helder communiceren van groot belang. Dat hij helder kan communiceren blijkt ook in zijn uitleg van Excel. Aan beginnende en gevorderde gebruikers laat hij zien hoe ze de mogelijkheden van dit rekenwonder kunnen benutten. Als nuchtere noorderling doet hij niet moeilijk over zaken die ingewikkeld lijken. Zijn doel is om u plezier te laten beleven aan uw computer en aan Excel in het bijzonder. De boeken van Wim vind je hier.

