12 Excel aanpassen - Pearson Education
12 Excel aanpassen - Pearson Education
12 Excel aanpassen - Pearson Education
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MACRO’S EN VBA IN EXCEL de basis<br />
Oefening <strong>12</strong>.4 Functiemacro programmeren<br />
1 Neem uit het werkblad van afbeelding <strong>12</strong>.13 het bereik B4:C9 over.<br />
2 Neem de formules pas over als u de functiemacro gemaakt hebt.<br />
3 Ga naar de VBA-editor en voeg de volgende programmacode toe aan een module:<br />
C Function MijnGemiddelde(rngBereik As Range, _<br />
Optional intAantalDecs As Integer = 2)<br />
'Declaraties<br />
Dim lngAantalGeldig As Long<br />
Dim sngTotaal As Single<br />
Dim objCel As Object<br />
'Initialisaties<br />
lngAantalGeldig = 0: sngTotaal = 0<br />
'Haal de inhoudvan alle cellen 1 voor 1 op<br />
For Each objCel In rngBereik<br />
If IsNumeric(objCel.Value) Then<br />
If Not (IsEmpty(objCel.Value)) Then<br />
lngAantalGeldig = lngAantalGeldig + 1<br />
sngTotaal = sngTotaal + objCel.Value<br />
End If<br />
End If<br />
Next<br />
'Geef de functiewaarde terug naar het werkblad<br />
MijnGemiddelde = Round((sngTotaal / lngAantalGeldig), intAantalDecs)<br />
End Function<br />
4 Ga naar het werkblad en start de functiewizard.<br />
5 In de categorie Door gebruiker gedefinieerd zult u de functie aantreffen, maar u mag ook gewoon<br />
de functie op de formulebalk invoeren.<br />
3<strong>12</strong><br />
Het bereik wordt in het argument van de functie doorgegeven aan de parameter rngBereik.<br />
De volgende parameter wordt voorafgegaan door het sleutelwoord Optional wat<br />
inhoudt dat deze parameter weggelaten mág worden. In dat geval krijgt intAantalDecs<br />
de waarde twee. Wordt de parameter in de werkbladformule wél gevuld, dan wordt die<br />
waarde gebruikt!<br />
Onder de regel initialisaties ziet u iets merkwaardigs wat op zich niet zo heel belangrijk<br />
is; de dubbele punt mag gebruikt worden om twee verschillende opdrachten op<br />
een regel te zetten.