De Vrijes website Menu sluitenMenu openenNaar top gaan

Menu opties

VBA - Elementen

Inhoud



VBA commentaar

Een apostrof markeert het begin van een commentaar. VBA negeert elke tekst die een apostrof volgt in een code regel, behalve als het in een tekst staat, dat omgegeven is met twee dubbele aanhalingtekens als een string. Bijvoorbeeld:
Sub Program()
' xxxxxxx
' xxxxxxx
' xxxxxxx
MsgBox "Gelieve Anna's bestand éérst af te sluiten." ' xxxxxxx
End Sub


VBA statement

Elke statement hoort in één regel te staan.
Om een statement te kunnen splitsen in meerdere regels hoort er een regelcontinuïteitstekst ' _' aan het einde van iedere regel te staan, behalve bij de laatste regel.
Bijvoorbeeld:
MsgBox   "Ik ben de fan " _
& "van de VBA " _
& "(= Visual Basic for Application)."


VBA variabele

Elke variabele kan gedeclareerd worden als volgt:
  sssssss xxxxxxx As yyyyyyy
of
  [Public] Const xxxxxxx As yyyyyyy = zzzzzzz
waarbij:
sssssss=Scope 'Dim', 'Public' of 'Static'
xxxxxxx=Variabele naam
yyyyyyy=Gegevenstype (standaard: Variant)
zzzzzzz=Constante waarde

ScopeHoe de variabele gedeclareerd wordt
Binnen de procedureDoor Const, Dim of Static te gebruiken in de procedure die gebruik maakt van de variabele
Binnen de moduleDoor Dim of Private te gebruiken vóór het éérste Sub- of Functie-statement in de module
Alle procedures in alle modulesDoor Public te gebruiken vóór het éérste Sub- of Functie-statement in de module

TypenaamGebruikte bytesWaardenbereik
Boolean2False or True
Byte10 tot en met 255
Currency8-9223372036854775808 tot en met 9223372036854775807
Date81/1/100 tot en met 31/12/9999 (in mode 'dd/mm/yyyy')
Double8Negatief: -1,79769313486232E308 tot en met -4,94065645841247E-324
Positief: 4,94065645841247E-324 tot en met 1,79769313486232E308
Integer2-32.768 tot en met 32.767
Long4-2.147.483.648 tot en met 2.147.483.647
Object4Elk gedefinieerd object
Single4Negatief: -3,402823E38 tot en met -1,401298E-45
Positief: 1,401298E-45 tot en met -3,402823E38
String1 per tekenVarieert naargelang het aantal tekens met dynamische lengte
String * nnn1 per tekenVarieert naargelang het aantal tekens met de maximale lengte 'nnn'
User definedVarieertVarieert
VariantVarieertElk gegevenstype

Opmerking over een dubbele aanhalingsteken voor een string:
Bij het coderen van een string met een dubbele aanhalingsteken moet er dubbel gemaakt worden, bijvoorbeeld:
  xxx = "Ons feest ""Huwelijksjubileum"" is onvergetelijk!"


VBA operators

OperatorOmschrijving
&String aaneenschakeling
*Vermenigvuldiging
+Optelling
-Aftrekking
/Deling
ModModulo rekenkunde
\Integer (een geheel getal dat door het quotiënt wordt gegeven)
^Exponentiatie

Logische operatorOmschrijving
AndLogische samenvoeging
Eqvlogische equivalentie
ImpLogische implicatie
NotLogische ontkenning
OrLogische scheiding
XorLogische uitsluiting


VBA procedures

Een functie-procedure is een procedure die een berekening uitvoert en slechts één waarde teruggeeft als resultaat:
Function xxxxxxx(.......)
.......
[Exit Function]
.......
xxxxxxx = .......
End Function

Een sub-procedure is een procedure die een of meer acties uitvoert:
Sub xxxxxxx(.......)
.......
[Exit Sub]
.......

End Sub


VBA programmaverlopen



Werken met arrays


Een vast tabel kan aangemaakt worden als:
Dim tbl(... [, ... [, ... [, ...]]]]) As xxxxxxx

Een dynamisch tabel kan aangemaakt worden, zodat het later als een vast tabel met dezelfde gegevenstype behandeld kan worden:
Dim tbl() As xxxxxxx
ReDim [Preserve] tbl(... , ...)
De command 'Redim' zonder de optie 'Preserve' gaat alle bestaande waarden weg wissen.
De command 'Redim' met de optie 'Preserve' gaat alle waarden behouden. Is het tabel groter geworden, dan wordt het uitgebreid met extra elementen. Is het tabel kleiner geworden, dan wordt alle overtollige tabelelementen verwijderd.

Werken met datums

Dim vandaag As Date
Dim startTijd As Date
Const eersteDag As Date = #1/1/2019#
Const middagUur As Date = #12:00:00#