Skip to the content

Het gebruik van variabelen in Excel vba.

In dit blog ga ik dieper in op het gebruik van de zogenaamde variabelen en de verschillende datatypen in Excel. Ik gebruik daarvoor weer het voorbeeld uit het eerste blog. Let op: ik gebruik dit als een voorbeeld. Probeer dit eens toe te passen op de formules die je normaliter zelf gebruikt.

Wat is een variabele?

Een variabele wordt gebruikt om tijdelijk informatie op te slaan, die wordt gebruikt voor het uitvoeren van een functie of macro in een procedure, module of werkblad. Voordat we de diepte in duiken benoem ik eerst een paar belangrijke regels voor het gebruik van een variabele:

  • De naam van de variabele moet beginnen met een letter en nooit met een nummer. Er mogen wel nummers voorkomen in de naam maar niet als eerste teken in de naam;
  • De naam van de variabele mag niet langer zijn dan 250 karakters;
  • De naam van de variabele mag niet hetzelfde zijn als de sleutelwoorden die Excel gebruikt, zoals sheet, worksheet e.d.;
  • De naam van de variabele mag geen spaties bevatten.

Waarom zou je een variabele willen gebruiken? Excel staat immers toe om een code te gebruiken zonder het gebruik van variabelen. Laten we de code uit het vorige blog er nog eens bijhalen en dit als voorbeeld gebruiken om het gebruik van variabelen te verduidelijken.

'Onderstaande functie berekend de samengestelde rente waarbij
'PV = Bedrag dat wordt geleend
'R = De rente in procenten per periode die moet worden betaald
'N = Het aantal periodes

Function Samengestelde_Rente(PV As Double, R As Double, N As Double) As Double

    Samengestelde_Rente = (PV * (1 + R) ^ N) - PV

End Function



In dit voorbeeld gebruiken we geen variabele. We gebruiken de functie door de parameters PV, R en N te vullen in het werkblad en de functie te verwijzen naar de cellen die de gegevens bevatten.

samengestelde rente zonder paramaters | Reinder.eu



In onderstaand voorbeeld ga ik ervan uit dat je de gegevens altijd op dezelfde plaats invoert, dus "Bedrag dat wordt geleend" staat altijd in cel A1. "De rente in procenten" staat altijd in cel A2 en "Het aantal periodes" staat altijd in cel A3. Nu gaan we de parameters verwijderen en variabelen toevoegen aan de functie.

'Onderstaande functie berekend de samengestelde rente waarbij
'PV = Bedrag dat wordt geleend
'R = De rente in procenten per periode die moet worden betaald
'N = Het aantal periodes

Function Samengestelde_Rente_Zonder_Parameters() As Double

Dim PV As Double

Dim R As Double

Dim N As Double

PV = Range("A1").Value

R = Range("A2").Value

N = Range("A3").Value

Samengestelde_Rente_Zonder_Parameters = (PV * (1 + R) ^ N) - PV

End Function


De verwijzing naar de inhoud van de cel doen we in het voorbeeld met de Range opdracht. Leer jezelf deze opdracht aan, omdat je met de Range 1 een enkele cel maar ook een reeks cellen kunt selecteren.

Range("A1").Value vertelt de functie dat de waarde van de variabele PV is opgeslagen in cel A1. Na het aanroepen van de nieuwe functie zie je dat het resultaat exact gelijk is aan het resultaat uit het vorige blog.

Samengestelde rente | Reinder.eu

 

De variabelen worden telkens bij het aanroepen van de functie opnieuw gevuld en doen in dit voorbeeld eigenlijk precies hetzelfde als de parameters uit het vorige voorbeeld. De reden om ze te gebruiken is dus nog niet veel duidelijker geworden.

Laten we er nu eens vanuit gaan dat de periode waarin het bedrag wordt terugbetaald altijd 5 perioden is. Nu hebben we een reden om een variabele te gebruiken, want waarom zouden we in cel A3 telkens het aantal perioden benoemen als we die ook toe kunnen kennen aan een variabele. De code zou er dan zo uitzien. Je ziet dat de variabele N niet langer verwijst naar een cel maar direct de waarde 5 heeft meegekregen.

'Onderstaande functie berekend de samengestelde rente waarbij
'PV = Bedrag dat wordt geleend
'R = De rente in procenten per periode die moet worden betaald
'N = Het aantal periodes

Function Samengestelde_Rente_Zonder_Parameters() As Double

    Dim PV As Double
    Dim R As Double
    Dim N As Double
    
    PV = Range("A1").Value
    
    R = Range("A2").Value
    
    N = 5
    
    Samengestelde_Rente_Zonder_Parameters = (PV * (1 + R) ^ N) - PV

End Function


We kunnen dus de cel A3 uit het vorige voorbeeld laten vervallen en de functie uitvoeren. Op dezelfde manier kunnen we ook de formule vereenvoudigen en toekennen aan variabelen.

'Onderstaande functie berekend de samengestelde rente waarbij
'PV = Bedrag dat wordt geleend
'R = De rente in procenten per periode die moet worden betaald
'N = Het aantal periodes
'R1 = De rente als genoemd in R + 1 (prenumerando)

Function Samengestelde_Rente_Zonder_Parameters() As Double

    Dim PV As Double
    Dim R As Double
    Dim N As Double
    Dim R1 As Double
    
    PV = Range("A1").Value
    
    R = Range("A2").Value
    
    N = 5
    
    R1 = 1 + R
    
    Samengestelde_Rente_Zonder_Parameters = (PV * R1 ^ N) - PV

End Function


Hier zie je dat de berekening 1+N is vervangen door de variabele R1, omdat de vereenvoudiging is uitgevoerd door de variabele R1. In complexere formules houd je door het gebruik van variabelen, het overzicht op de wijze van berekenen en programmeren.


Datatype en variabelen

Nu nog even in het kort iets over de datatype die het meest voorkomen in Excel. In het voorbeeld en in het vorige blog heb je de term "Double" veel voorbij zien komen. Hieronder een lijst van datatypes en de betekenis van de sleutelwoorden:

Byte = Een datatype dat wordt gebruikt om positieve getallen tussen 0 en 255 te verwerken.

Boolean = Een datatype met alleen de getallen Waar(-1) of onwaar (0).

Integer = Een datatype dat alleen hele getallen kan verwerken tussen -32768 en +32767.

Long = een datatype dat alleen hele getallen kan verwerken tussen -9223372036854770.5808 en 9223372036854770.5808.

Currency = = Een datatype dat speciaal is gecreëerd om bedragen te verwerken waarbij decimaal punten worden gebruikt tussen -9223372036854770.5808 en 9223372036854770.5808.

Single = Een datatype dat alleen hele getallen kan verwerken tussen -3.402823E38 en -1.401298E-45 voor negatieve getallen, en 1.401298E-45 to 3.402823E38 voor positieve getallen.

Double = Een datatype met een precisie van 15 cijfers 9Tot 15 cijfers achter de komma).

Date = Een datatype dat een datum kan verwerken.

String = Een datatype dat tekst kan verwerken.