Blog-Het gebruik van variabelen in Excel VBA Versie
: 2012.01.31.1 (Blog http://www.reinder.eu)
Dank voor de leuke reacties op het vorige blog en ook dank voor de kritische noot over het nivo dat de gebruiker moet hebben om zelf een functie te kunnen maken in Excel. In dit blog ga ik wat dieper in op het gebruik van variabelen en de verschillende datatype in Excel en gebruik daarvoor weer het voorbeeld uit de eerste blog. Let op ik gebruik dit als een voorbeeld en probeer dit eens toe te passen op de formules die je normaliter zelf gebruikt. 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 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 een variabele mag niet hetzelfde zijn als de sleutelwoorden die Excel gebruikt, zoals Sheet, worksheet e.d. De naam van een variabele mag geen spaties bevatten Waarom zou je een variabele willen gebruiken immers Excel staat het toe 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
Titel
Pagina 1 van 6
31-1-2012
In dit voorbeeld gebruiken we geen variabele immers 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.
In het onderstaande 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
Titel
Pagina 2 van 6
31-1-2012
Samengestelde_Rente_Zonder_Parameters = (PV * (1 + R) ^ N) - PV End Function
De verwijzing naar de inhoudt van de cel doen we in het voorbeeld met de Range opdracht. Leer jezelf deze opdracht aan omdat je met de Range 1 enkele cel maar ook een reeks cellen kunt selecteren. Range("A1").Value verteld 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.
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 dus de reden om ze te gebruiken is nog niet veel duidelijker geworden. Laten we er nu eens vanuit gaan dat de periode waarin het bedrag wordt terug betaald altijd 5 perioden zijn. Nu hebben we een reden om een variabele te gebruiken immers waarom zouden we in cel A3 telkens het aantal perioden benoemden als we die ook toe kunnen kennen aan een variabele. De code zou er dan zo uit zien waarbij je ziet dat de variabele N niet langer verwijst naar een cel maar direct de waarde 5 heeft meegekregen.
Titel
Pagina 3 van 6
31-1-2012
'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.
Titel
Pagina 4 van 6
31-1-2012
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 houdt je, door het gebruik van variabelen, het overzicht op de wijze van berekenen en programmeren.
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.
Titel
Pagina 5 van 6
31-1-2012
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.
In het volgende blog zal ik wat dieper ingaan op de verschillende datatypes.
Titel
Pagina 6 van 6
31-1-2012