|
Visual Basics
Objectmodel
Visual Basic is een 3e-generatie programmeertaal, wat wil zeggen
dat je er programma's mee maakt die tegen het besturingssysteem - in ons
geval Windows - zeggen wat ze gedaan willen krijgen. Het besturingssysteem
vertaalt die instructies naar 'machinetaal'. Om dit gedaan te krijgen hanteert
Windows het Object-model waarin alle manipuleerbare Objecten
van een toepassing in Collecties zijn ondergebracht.
Het Application-object is bijvoorbeeld het allerhoogste object van
een toepassing, het Parent-Object. De Application-Collectie
van Word bestaat onder andere uit de Documents-collectie, waarin zich alle
geopende documenten bevinden, en het Selection-object, welke de op dat
moment in Word geselecteerde tekst vertegenwoordigt. Documents en Selection
zijn zodoende Child-Objecten van het Application-object.
Kijk bij Object Reference voor
een uitgebreider overzicht van veelgebruikte objecten.

Eigenschappen,
Methoden en Argumenten
Objecten kunnen gemanipuleerd worden door middel van hun Eigenschappen.
Verwijzingen naar object-eigenschappen zien er als volgt uit:
Selection.Text verwijst naar de string, ook wel tekenreeks
genoemd, die op dat moment geselecteerd is. Als de cursor knippert, en
er dus geen tekst geselecteerd is, verwijst hij naar het teken na de cursor.
Selection.Font.Name verwijst naar de naam van het lettertype
van de selectie.
Functies van Word, zoals zoeken, kopiëren, bladeren, afdrukken,
etc., kunnen in Basic worden gebruikt omdat het Methoden
zijn van Word-objecten. Naar methoden wordt op een vergelijkbare manier
verwezen:
Application.Move verplaatst het Word-venster.
ActiveDocument.Close sluit het huidige document.
ActiveDocument.CheckSpelling start de spellingscontrole
voor het huidige document.
Selection.Copy kopieert de selectie naar het klembord.
Een methode wordt vergezeld van parameters: Waarheen verplaatsen? Opslaan
alvorens te sluiten? De parameters worden Argumenten genoemd.
Er zijn vereiste argumenten en optionele argumenten. Optionele argumenten
hebben een standaardwaarde welke wordt gebruikt als het argument niet in
de instructie wordt opgenomen.
Argumenten kunnen op verschillende manieren aan een methode worden
toegevoegd. Als voorbeeld gaan we de cursor naar rechts verplaatsen:
Selection.MoveRight(Unit, Count, Extend)
Het argument Unit vertelt op welk niveau naar rechts moet worden
bewogen: Teken, woord, zin, alinea, pagina. Met Count wordt het
aantal Units aangegeven en Extend geeft aan of de cursor een selectie
maakt tijdens het bewegen. Je gebruikt deze methode dus als je de cursor
naar een andere plek wilt brengen, maar ook om een selectie te maken.
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdMove
In dit voorbeeld worden de standaardwaardes van de argumenten gebruikt
welke alledrie optioneel zijn. Deze doen dus precies hetzelfde.
Selection.MoveRight
Selection.MoveRight Unit:=wdCharacter
Selection.MoveRight Unit:=wdCharacter, Count:=1
De naam van het argument hoeft niet per se in de instructie te worden vermeld.
Deze wordt daardoor wel leesbaarder.
Selection.MoveRight wdCharacter, 1, wdMove
Een ander voordeel van het vermelden van argumentnamen is dat argumenten
kunnen worden overgeslagen tijdens het benoemen. Een teken naar rechts
selecteren:
Selection.MoveRight Unit:=wdCharacter, Extend:=wdExtend
Zonder argumentnamen moet dat als volgt; er wordt een extra komma gebruikt:
Selection.MoveRight wdCharacter, , wdMove
In sommige gevallen moeten de argumenten tussen haakjes worden geplaatst.
Voor help over specifieke argumenten kun je met de cursor in de methode
gaan staan en daar met F1 help over opvragen.
Instructies
Een VB-programma is dus opgebouwd uit zogeheten Instructies.
Die instructies kunnen variabelen benoemen, object-eigenschappen manipuleren,
methoden gebruiken, routines uitvoeren en zijn gebundeld in een Procedure.
Sub Macronaam()
instructie
instructie
End Sub
Er zijn drie soorten instructies:
Declaratie-instructies benoemen variabelen en hun gegevenstype (string
of numeriek).
Toewijzingsinstructies stellen eigenschappen in of wijzen die toe
aan een variabele.
Uitvoerbare instructies voeren methoden uit of lussen.
Variabelen dienen als tijdelijke opslagplaats voor bijvoorbeeld object-eigenschappen.
In de ene instructie kun je bijvoorbeeld opvragen hoeveel documenten er
geopend zijn en dat aantal in een numerieke variabele stoppen om in de
andere instructie evenzoveel keer een lus uit te voeren:
Sub Wegwezen()
Dim Variabele As
Integer ' Declaratie
Variabele = Documents.Count ' Toewijzing
For X = 1 To
Variabele ' Lus
ActiveDocument.Save
ActiveDocument.Close
Next X
Application.Quit
End Sub
Een functie is een soort mini-programma dat wordt gebruikt
in een instructie. De VBA-bibliotheek bevat een uitgebreide set functies
om bijvoorbeeld een stuk tekst (tekenreeks) te bewerken. Zie de voorbeelden
voor meer informatie over "ingebouwde" functies. Functies kun je ook zelf
maken als procedure:
Public Function WeekNummer(dDatum
As
Date) As Integer
WeekNummer = Format(dDatum, "ww", vbMonday, vbFirstFourDays)
End Function
Aan de functie wordt het argument dDatum meegegeven. De instructie gebruikt
de ingebouwde functie Format om uit de meegegeven dDatum het WeekNummer
te filteren. Door de functie Public te declareren, kan de functie vanuit
iedere module worden aangeroepen met bijv.:
Sub ToonWeeknummer()
MsgBox WeekNummer(Now())
End Sub
WeekNummer krijgt de huidige datum om het huidige weeknummer te tonen in
een messagebox.
If...Then...Else
Controleren of aan een bepaalde voorwaarde wordt voldaan en
afhankelijk daarvan een bepaalde reeks instructies uitvoeren.
If Variabele <> 0 Then
For X = 1 To
Variabele
ActiveDocument.Save
ActiveDocument.Close
Next X
End If
Do While...Loop
Loopen zolang aan een voorwaarde wordt voldaan.
Do While Documents.Count <>
0
ActiveDocument.Save
ActiveDocument.Close
Loop
of:
Do Until Documents.Count =
0
ActiveDocument.Save
ActiveDocument.Close
Loop
of:
Do
ActiveDocument.Save
ActiveDocument.Close
Loop Until Documents.Count = 0
For...Next
Een opgegeven aantal keer loopen.
For X = 1 To
Documents.Count
ActiveDocument.Save
ActiveDocument.Close
Next X
|
|