KB » Computer » Visual Basic for Applications (macro's in Excel en Word)

Visual Basic for Applications (macro's in Excel en Word)

    Tweeten

Introductie

Ik had al heel lang de behoefte om programmaatjes te schrijven die iets zouden kunnen doen met spreadsheets (Excel), documenten (Word) of mail (Outlook).

Wat me echt motiveerde om hiermee aan de slag te gaan, is dat ik een spreadsheet had gemaakt met familierelaties. In de cellen zet ik achternamen van mensen die een bepaalde relatie (bv. achterachterneef) met me hebben.

Maar ik zou ook graag een alfabetische lijst van de namen uit alle cellen samen willen hebben. Dit is typisch iets wat je met een macro zou moeten kunnen doen, maar ik had geen idee hoe het aan te pakken.

Gelukkig had ik nog een oud boek over VBA 6 in de kast staan, en aan de hand van o.a. mijn ervaringen met het genealogische programma probeer ik deze pagina op te zetten.

Ik maak gebruik van Office 2010 voor onderstaande experimenten.


De 1e (zeer simpele) macro (in Excel)

Developer menu zichtbaar maken

Voordat je iets met macro's kan doen heb je een menu nodig dat mogelijk nog niet aanwezig is (bij mij was het dat in elk geval niet), het Developer (ontwikkelaar) menu.

Klik op File - Options - Customize Ribbon

Zorg dat er rechts, onder de kop Customize the Ribbon, Main Tabs staat.

Zet dan een vinkje voor Developer

Macro's bekijken en aanmaken

Klik op Developer - Macros, of gebruik de toetscombinatie Alt+F8

Als het goed is zie je nu dat er nog geen macro's zijn in het huidige spreadsheet (als je het nog geen naam gegeven hebt Book1, in mijn geval test.xlsx).

Als je onder Macro name de naam intikt van de macro die je wilt maken, bv. Hallo, krijg je de mogelijkheid om op Create te klikken.

Je belandt dan in de Visual Basic omgeving, waar je ook onmiddellijk had kunnen komen door te klikken op Developer - Visual Basic (of via de toetscombinatie Alt+F11)

Als je het Visual Basic venster weer sluit, en het Macro-venster weer opent, zie je dat je nu 1 macro hebt met de naam Hallo

Je kan hem nu ook uitvoeren, bewerken en verwijderen. Je hebt er weliswaar nog geen code in gezet, maar hebt nu dus gewoon een lege macro.

Dat kan je zien als je klikt op Edit. Je ziet dan rechts een venster met maar 2 regels code: Sub Hallo() en End Sub

Het Visual Basic scherm

Linksboven zie je venster(tje) van de Project Explorer (die je actief kan maken met Ctrl+R)

Dit venster bevat alle onderdelen van het project. In dit geval zijn de hoofdcategorieën waarschijnlijk Microsoft Excel Objects (o.a. de 3 worksheets) en Modules (de code).

Linksonder zie je het Properties Window, dat je actief kan maken met F4

Hierin zie je de eigenschappen van het object dat je in de Project Explorer hebt geselecteerd.

En rechts zie je het venster met de code.

Een venster dat je standaard nog niet ziet, maar dat je ook regelmatig nodig zal hebben, is de Object Browser (die je met F2 te voorschijn kan toveren).

Hierin kan je zoeken naar objecten, hun eigenschappen, etc.

Hallo, wereld!

Voeg tussen de 2 regels die er al in de code stonden, de regel MsgBox("Hallo, wereld!") toe.

Je kan deze subroutine nu vanuit het Visual Basic venster uitvoeren door te klikken op Run - Run Sub/UserForm

Het effect zou moeten zijn dat er een venstertje met de tekst "Hallo, wereld!" verschijnt (en een OK-knop erin).

Natuurlijk kan je deze subroutine/macro ook vanuit de spreadsheet uitvoeren, want daar is het tenslotte om begonnen. Klik dan op Developer - Macros, selecteer de macro Hallo, en klik op Run



    Tweeten

© Henk Dalmolen
Reageer via E-mail (dalmolen@xs4all.nl)

Deze pagina is voor het laatst gewijzigd op: 12-02-23 13:26:29