Startpagina  | Terug  |   © 2008
 
 

Programmeren in Excel: Het objectmodel

Introductie

Veel financieel professionals werken dagelijks met Microsoft Excel. Sommigen wagen zich er ook aan om in Excel zelf te programmeren. Als u een ervaren Office-programmeur vraagt waarmee u moet beginnen als u ook wilt programmeren in een van de Office-applicaties, dan zullen de meeste u zeggen: met het begrijpen van het objectmodel. Misschien zult u denken: waarom is dat zo belangrijk?

Laten we een voorbeeld nemen: U beslist om met de auto naar het buitenland op vakantie te gaan. U heeft een hotelkamer gereserveerd. Voordat u weg rijdt, gaat u een route uitzoeken. Bij het uitzoeken van de route begint u niet met het zoeken van het huisnummer van het hotel. Nee, u zoekt eerst hoe u naar dat land moet rijden, daarna hoe u de plaats kunt bereiken, daarna hoe u naar de straat rijdt, en pas daarna als u eenmaal daar bent, zoekt u het huisnummer. Hetzelfde geldt ook voor Excel. Er zijn twee belangrijke dingen die u moet weten:

Waar bevindt zich het object dat ik nodig heb?
Waar bevind ik me nu?

Met het antwoord op deze twee vragen, kunt u het object benaderen, en laten doen wat u wilt dat het doet.

In dit artikel proberen we u te helpen om het objectmodel van Excel te verkennen en inzicht erin te krijgen, en de kernwoorden Object, Collection, Methods, Properties en Events te begrijpen. Aangezien het feit dat we maar over een dag hiervoor beschikken, zijn wij genoodzaakt om af en toe redelijk snel doorheen te gaan. Zijn er bepaalde dingen voor u niet duidelijk, dan kunt u de helpfunctie van Excel VBA raadplegen.

Objects, collections, properties en methods

Een object in Excel is iets wat geprogrammeerd (en/of gecontroleerd) kan worden. Voorbeelden van objecten zijn: Applicatie (Excel in ons geval), Werkboek, Werkblad, Grafiek, etc. Meerdere objecten van hetzelfde soort zijn gegroepeerd in Collections. Zo kennen we de collection Workbooks, Worksheets, Charts, enz. Een object heeft Properties (Eigenschappen) en Methods (Acties). Om deze begrippen te verduidelijken nemen we het object Workbook. Dit object behoort tot de collection Workbooks. De collection Workbooks bevat alle geopende werkboeken in Excel op een bepaald tijdstip.

Eigenschappen van het object "workbook" zijn onder andere:

Name: De naam van het werkboek
Path: De path van het werkboek
HasPassword: Geeft de waarde True terug als het werkboek beveiligd is met een wachtwoord, anders False.

Sommige van deze properties kunnen we alleen lezen, andere kunnen we ook schrijven. De property Name kunnen we lezen, we kunnen dus achterhalen wat de naam van het werkboek is, en we kunnen ook de naam van het werkboek via deze property veranderen. Niet hetzelfde geldt voor de property HasPassword. Deze property kunnen we alleen lezen, en niet veranderen.

Methods in tegenstelling tot properties, zijn acties die gedaan kunnen worden in of door het object. Voorbeelden van methods van het object "workbook" zijn:

Activate: Activeert het werkboek
Close: Sluit het werkboek af
Protect: Beveiligt het werkboek met een wachtwoord
Save: Slaat het werkboek op

Het objectmodel gebruiken

In het objectmodel van Excel is de hiėrarchie van deze objecten vastgesteld. De plek van ieder object is precies bepaald. Voordat we u een voorbeeld laten zien gaan we eerst kijken naar een gedeelte van het objectmodel, en naar de gevolgen van de positie van een object in het objectmodel.

Hieronder ziet u een gedeelte van het objectmodel van Excel.

Objectmodel van Microsoft Excel

Stel, u wilt het lettertype van een cel Vet maken. Hiervoor moet u in de code aangeven in welk werkboek die cel zich bevindt, in welke sheet, en welke cel het is. Hetzelfde geldt ook voor het benoemen van een cel, voor commentaar toevoegen aan de cel, etc.

Hiervoor zou u de volgende code moeten schrijven:

Application.ActiveWorkbook.Sheets(1).Range("a1").Font.Bold = True

Maar als u dezelfde macro opneemt, dat ziet u dat Excel alleen de volgende code schrijft:

Range("A1").Select
Selection.Font.Bold = True

Welke van de twee mogelijkheden moet u gebruiken? Dat hangt ervan af waar u zich bevindt op het moment dat de macro uitgevoerd wordt. Als het werkboek en de juiste sheet van de cel al geselecteerd zijn (handmatig bijvoorbeeld) dan is het genoeg om alleen de cel te selecteren en hiervan de Font te veranderen. Doet u dat niet, dan gaat Excel ervan uit dat de cel die een andere font moet krijgen in het actieve werkboek en op de actieve sheet zich bevindt.

Als u werkelijk zelf wilt beginnen te programmeren in Excel, dan raden we aan om boeken of websites te raadplegen of eventueel een cursus te volgen. Zorg dat u in elk geval de fundamenten begrijpt. Dat scheelt een hoop ergernis en tijd!


Reageer op dit artikel...