Visual Basic for Applications (macro's in Excel en Word)
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
Links
Reageer via E-mail (dalmolen@xs4all.nl)
Deze pagina is voor het laatst gewijzigd op: 12-02-23 13:26:29