objectgeoriënteerd programmeren In Excel

Objectgeoriënteerd programmeren in Excel

Het Complete Boek Excel VBA voor professionals, 4e editie

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 chdir of cd: ga naar een bepaalde map (‘Change Directory’).
objectgeoriënteerd programmeren In Excel
objectgeoriënteerd programmeren In Excel

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.

objectgeoriënteerd programmeren In Excel
  • 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:

objectgeoriënteerd programmeren In Excel

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.

objectgeoriënteerd programmeren In Excel

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

objectgeoriënteerd programmeren In Excel

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 CountLarge de kortere eigenschap Count gebruikt, 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 eigenschap CountLarge. 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:


Alle Excel-tips en trucs op Computer Creatief vind je HIER


 

Geef een reactie

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.