Het Begrijpen van het Excel-objectmodel
Veeg om het menu te tonen
Elke regel VBA die je ooit in Excel zult schrijven, is een zin over objecten: iets bestaat (een Application, een Workbook, een Worksheet, een Range), en je leest ofwel een van zijn eigenschappen uit of vraagt het om een van zijn methoden uit te voeren. Zodra deze hiërarchie duidelijk is, bestaat de rest van de taal vooral uit woordenschat.
De hiërarchie lezen
- Application — het volledige actieve exemplaar van Excel; het hoogste niveau van elke hiërarchie;
- Workbooks — de verzameling van alle geopende bestanden; één enkel bestand is een Workbook, bijvoorbeeld
Section_1_VBA_Intro.xlsm; - Worksheets — de verzameling tabbladen binnen een workbook; één enkel tabblad is een Worksheet, bijvoorbeeld "Employees";
- Range — één cel, een blok cellen, een volledige rij of een volledige kolom;
- Cells / Value — de daadwerkelijke gegevens die zich in een Range bevinden.
Je hoeft zelden de volledige keten van Application naar beneden te typen — VBA gaat ervan uit dat je het actieve workbook en actieve sheet bedoelt, tenzij je anders aangeeft — maar objecten expliciet benoemen is wat fragiele code onderscheidt van betrouwbare code. Vergelijk deze twee manieren om dezelfde instructie te schrijven:
' Fragile — depends on whatever sheet happens to be active
Range("F2").Value = 65000
' Reliable — states exactly which workbook and sheet, no matter what's on screen
ThisWorkbook.Worksheets("Employees").Range("F2").Value = 65000
De tweede versie blijft werken, zelfs als de gebruiker drie andere werkmappen heeft geopend en een ander werkblad heeft geselecteerd — een gewoonte die van groot belang is zodra je macro's langer worden dan een paar regels. Je zult ThisWorkbook.Worksheets("SheetName") op deze manier voortdurend gebruiken gedurende de rest van de cursus.
Navigeren door objectrelaties in het Direct Venster
Het Direct Venster (Beeld → Direct Venster of Ctrl+G binnen de VBE; ^ ⌘ G op Mac) stelt je in staat om een enkele regel code te testen zonder deze in een Sub te plaatsen.


Typ een regel die begint met een vraagteken en druk op Enter om het resultaat direct te zien. Probeer deze op Section_1_VBA_Intro.xlsm:
?ThisWorkbook.Name
?ThisWorkbook.Worksheets("Employees").Range("B3").Value
?ThisWorkbook.Worksheets("Employees").Range("A1").CurrentRegion.Address
?ThisWorkbook.Worksheets.Count
De derde regel introduceert CurrentRegion, een eigenschap die zich uitbreidt van één cel naar het volledige aaneengesloten gegevensblok eromheen.
Taak
- Schrijf in het Directvenster één regel die de Functie van
Olivia Brown(rij 4) afdrukt zonder eerst op de cel te klikken — verwijs er direct naar via de objecthiërarchie. - Schrijf een tweede regel die het aantal rijen in de Employees-tabel afdrukt met behulp van
CurrentRegion.Rows.Count.
Verwijs ernaar als ThisWorkbook.Worksheets("Employees").Range("D4").Value — rij 4 is Olivia Brown, kolom D is Functie.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Het Begrijpen van het Excel-objectmodel
Elke regel VBA die je ooit in Excel zult schrijven, is een zin over objecten: iets bestaat (een Application, een Workbook, een Worksheet, een Range), en je leest ofwel een van zijn eigenschappen uit of vraagt het om een van zijn methoden uit te voeren. Zodra deze hiërarchie duidelijk is, bestaat de rest van de taal vooral uit woordenschat.
De hiërarchie lezen
- Application — het volledige actieve exemplaar van Excel; het hoogste niveau van elke hiërarchie;
- Workbooks — de verzameling van alle geopende bestanden; één enkel bestand is een Workbook, bijvoorbeeld
Section_1_VBA_Intro.xlsm; - Worksheets — de verzameling tabbladen binnen een workbook; één enkel tabblad is een Worksheet, bijvoorbeeld "Employees";
- Range — één cel, een blok cellen, een volledige rij of een volledige kolom;
- Cells / Value — de daadwerkelijke gegevens die zich in een Range bevinden.
Je hoeft zelden de volledige keten van Application naar beneden te typen — VBA gaat ervan uit dat je het actieve workbook en actieve sheet bedoelt, tenzij je anders aangeeft — maar objecten expliciet benoemen is wat fragiele code onderscheidt van betrouwbare code. Vergelijk deze twee manieren om dezelfde instructie te schrijven:
' Fragile — depends on whatever sheet happens to be active
Range("F2").Value = 65000
' Reliable — states exactly which workbook and sheet, no matter what's on screen
ThisWorkbook.Worksheets("Employees").Range("F2").Value = 65000
De tweede versie blijft werken, zelfs als de gebruiker drie andere werkmappen heeft geopend en een ander werkblad heeft geselecteerd — een gewoonte die van groot belang is zodra je macro's langer worden dan een paar regels. Je zult ThisWorkbook.Worksheets("SheetName") op deze manier voortdurend gebruiken gedurende de rest van de cursus.
Navigeren door objectrelaties in het Direct Venster
Het Direct Venster (Beeld → Direct Venster of Ctrl+G binnen de VBE; ^ ⌘ G op Mac) stelt je in staat om een enkele regel code te testen zonder deze in een Sub te plaatsen.


Typ een regel die begint met een vraagteken en druk op Enter om het resultaat direct te zien. Probeer deze op Section_1_VBA_Intro.xlsm:
?ThisWorkbook.Name
?ThisWorkbook.Worksheets("Employees").Range("B3").Value
?ThisWorkbook.Worksheets("Employees").Range("A1").CurrentRegion.Address
?ThisWorkbook.Worksheets.Count
De derde regel introduceert CurrentRegion, een eigenschap die zich uitbreidt van één cel naar het volledige aaneengesloten gegevensblok eromheen.
Taak
- Schrijf in het Directvenster één regel die de Functie van
Olivia Brown(rij 4) afdrukt zonder eerst op de cel te klikken — verwijs er direct naar via de objecthiërarchie. - Schrijf een tweede regel die het aantal rijen in de Employees-tabel afdrukt met behulp van
CurrentRegion.Rows.Count.
Verwijs ernaar als ThisWorkbook.Worksheets("Employees").Range("D4").Value — rij 4 is Olivia Brown, kolom D is Functie.
Bedankt voor je feedback!