Excel VBA, Objectmodel

 

Snel op weg! Het Objectmodel, hoe werken de Objecten ?


Bij het gebruik van VBA is het nuttig (noodzakelijk) om op de hoogte te zijn van het objectgeoriënteerd denken. Waarom ?
  • Excel en ook de andere Office producten bestaan uit een aantal objecten.
  • Programmeren in VBA bestaat uit het manipuleren van deze objecten.
  • Het principe van objectoriëntatie kan ook worden toegepast om macro's voor andere Office producten te schrijven.
Wat is een object ?
  • Een object is een benoemd gedeelte uit het geheugen van een computer.
  • Het heeft kenmerken en eigenschappen, zoals bijvoorbeeld mensen met bruin haar of rood haar.
  • Het kent methodes. Mensen kunnen lopen en autos kunnen rijden.
  • Objecten kunnen bestaan uit andere objecten
Een voorbeeld:
Nederland bevat objecten en objectverzamelingen. Het bevat objecten zoals "autos". Elke auto wordt uniek geïdentificeerd door een kenteken. De auto "XP 56 89" is onderdeel van de verzameling. Om de kleur te bepalen van deze specifieke auto moeten we schrijven:


Aarde.Landen(”Nederland”).Autos(”XP 56 89”).Kleur
We willen de auto laten bewegen. Beweeg de auto uit Nederland met kenteken ”XP 56 89” op de planeet "Aarde" 10 eenheden naar beneden en 10 eenheden naar links.
In VBA moet dit als volgt worden geschreven:


Aarde.Landen(”Nederland”).Autos(”XP 56 89”).Beweeg(10,10)
Welke objecten kennen we in Excel ?
  • Het "moederobject" is "Application".
  • Applicaties bevatten werkmappen.
  • Een werkmap bevat werkbladen.
  • De werkbladen bevatten bereiken.
  • Application, werkmappen, werkbladen etc bevatten allemaal objecten met eigenschappen en methodes.

Het benaderen van objecten?

Om een bepaald werkblad te benaderen schrijven we:


Application.Workbooks(”naam.xls”).Sheets(”Naam”)

en als we de naam van het werkblad niet weten kunnen we gebruik maken van een index:

Application.Workbooks(”naam.xls”).Sheets(1)
Om het werkblad een naam te geven schrijven we:

Application.Workbooks(”naam.xls”).Sheets(1).Name = ”MijnNaam”
Als een bepaalde werkmap als actief is kunnen we volstaan met:

Sheets(”Naam”)
Hierdoor wordt het werkblad in de actieve werkmap benaderd.
Binnen het werkblad kunnen we een bereik benaderen door:

Sheets(”Naam”).Range(”A1”)

Of een bereik in het actieve werkblad:

Range(”A1”)
Als aan een bereik een naam is toegekend kan je deze benaderen door:

Range(”Bereiknaam”)
Heb je nog vragen, neem dan gerust contact met ons op.
Inloggen

Inloggen

Mrah Development BV

MRAHDevelopment

Mrah Development BV
Voor uw Excel vragen,
Leuke gratis Excel toepassingen.

ExcelFIX

links_partners_5

ExcelFIX
ExcelFIX herstelt beschadigde
en corrupte spreadsheets die
gemaakt zijn in Microsoft Excel.

Infotron BV


linkspartners_5

www.infotron.nl
Zelf al goed met Excel, maar wilt u bestanden beter begrijpen, valideren en verbeteren?

Exhelp.be

Links_partners_20

ExcelFIX
Dé Vlaamse Excel blog