Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Het Begrijpen van het Excel-objectmodel | Introductie tot VBA en het Excel-objectmodel
Excel VBA voor Bedrijfsautomatisering

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.

carousel-imgcarousel-img

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

  1. 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.
  2. Schrijf een tweede regel die het aantal rijen in de Employees-tabel afdrukt met behulp van CurrentRegion.Rows.Count.
Tip
expand arrow

Verwijs ernaar als ThisWorkbook.Worksheets("Employees").Range("D4").Value — rij 4 is Olivia Brown, kolom D is Functie.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

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.

carousel-imgcarousel-img

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

  1. 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.
  2. Schrijf een tweede regel die het aantal rijen in de Employees-tabel afdrukt met behulp van CurrentRegion.Rows.Count.
Tip
expand arrow

Verwijs ernaar als ThisWorkbook.Worksheets("Employees").Range("D4").Value — rij 4 is Olivia Brown, kolom D is Functie.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 4
some-alt