8 Macro's in Excel

 

8.1 Macro's opnemen

Macro's gebruik je o.a. om regelmatig terugkerende taken te automatiseren. Om macro's te maken activeer je de werkbalk 'Visual Basic' via Beeld, Werkbalken, Visual Basic.

Een macro kan je in Excel opnemen zoals je geluid of beelden opneemt. Klik of kies Extra, Macro, Nieuwe macro opnemen. Je ziet dan dit venster:

Je moet de macro een naam geven. Je kan er een sneltoets aan koppelen en bepalen waar de macro moet opgeslagen worden. Omdat binnen de Windowsomgeving reeds een aantal toetscombinaties bestaan is het nuttig bij het kiezen van een sneltoets de SHIFT-toets in combinatie met een letter te gebruiken. Het activeren van de macro kan dan met CTRL+SHIFT+toets. Voorlopig kies je als map voor het opslaan van macro's 'Deze werkmap'.

In je werkblad verschijnt vervolgens de werkbalk Opname.

De linkerknop dient om de opname te stoppen. Je kan werken met relatieve adressering of met absolute adressen.

Voorbeeld: je moet vaak de inhoud van de cellen A1:A3 vet en rood weergeven.

Klik (Macro opnemen) in de Visual Basic-werkbalk en voer de nodige opdrachten uit. Beëindig de opname door (Opname stoppen) aan te klikken. Klik nadien op (Macro starten) . Je ziet nu een lijst met alle macro's in de huidige map. Selecteer de gewenste macro en klik Bewerken.

Je komt in het Visual Basic-ontwerpvenster. Hier vind je meerdere deelvensters, o.a. het venster met de code (=macro('s)) van Module1.

opmerking:

Via Beeld kom je bij het snelmenu hiernaast. Het geeft een overzicht van de subvensters en dokbare vensters die je kan activeren. Subvensters zijn vensters die enkel als onderdeel van en IN een ander venster te gebruiken zijn terwijl dokbare vensters BUITEN het hoofdvenster kunnen gesleept worden. Klik rechts in een venster en je vindt o.a. de eigenschap 'dokbaar' indien het betreffende venster als afzonderlijk 'document' kan gebruikt worden. Je kan deze eigenschap aan of uit zetten. Zet de eigenschap aan en sleep het venster met de CTRL-toets om het te 'dokken'. Bij subvensters komt de eigenschap 'dokbaar' uiteraard niet voor. Zo is een venster met macrocode niet dokbaar terwijl het venster 'Projectverkenner' dat wel is.

We interesseren ons voorlopig enkel aan het venster met de code van onze macro:

Sub VetRood()
'
' VetRood Macro
' De macro is opgenomen op ... door...
'
    Range("A1:A3").Select
    Selection.Font.Bold = True
    Selection.Font.ColorIndex = 3
End Sub
Een macro maakt deel uit van een module en neemt de vorm aan van een subprocedure of een functieprocedure. Een macro bevat een aantal instructies die meestal uitgevoerd worden op objecten.Objecten zijn bijvoorbeeld: werkmappen, werkbladen, kolommen, al dan niet geselecteerde cellen, randen, grafieken, ...

Syntax:

SUB naam(parameters)
' Commentaar
      instructies
'Commentaar
END SUB
Een subprocedure heeft een vaste vorm. Je mag commentaar schrijven in een macro. Dit doe je door een lijn te laten beginnen met een apostrof. Je mag ook achter een instructie commentaar toevoegen. Begin ook daar met een apostrof.

Het voornaamste deel van een macro bestaat uiteraard uit de instructies.

We overlopen ons voorbeeld:

Sub VetRood()
De naam van de macro is hier VetRood. Tussen de haakjes kunnen argumenten of parameterwaarden worden ingevuld. Deze macro heeft geen argumenten.
Range("A1:A3").Select
       
De cellen A1 tot A3 worden geselecteerd. Cellen of groepen van cellen zijn objecten van het type 'Range'. Op objecten kan je methoden toepassen. Een methode is een actie of bewerking die je met of op het object kan uitvoeren. Eén van de methoden die op een object van het type 'Range' kunnen uitgevoerd worden heet 'Select'.
Selection.Font.Bold = True 'Selection' staat voor een geselecteerd object, hier 3 cellen. Elk object heeft een aantal eigenschappen. Eén ervan heet 'Font'. De 'waarde' van deze eigenschap is een object van het type 'Font'. Het lettertype van een reeks geselecteerde cellen is dus een object op zich. Dit 'Font-object' heeft op zijn beurt een aantal eigenschappen waaronder 'Bold'. Deze eigenschap wordt in bovenstaande macro de waarde 'True' toegewezen.
Selection.Font.ColorIndex = 3 De eigenschap 'Colorindex' krijgt de waarde 3 (rood) toegewezen.

Alle macro's die je opneemt worden automatisch in 'Module1' gezet. Neem je na het sluiten en heropenen van de werkmap opnieuw macro's op, dan worden deze in een tweede module gezet. Je mag echter alle macro's uit een werkmap in één module samenbrengen.