Inhoud van een buis berekenen met CILINDERINHOUD
De inhoud van een cilinder of bol berekenen is niet eenvoudig. Zou het niet handiger zijn als je gewoon een formule kon invoeren als CILINDERINHOUD of BOLINHOUD met de maten, en dat je dan meteen de uitkomst ziet?
Je kunt die functie zelf programmeren. Dat wordt een UDF genoemd, een User Defined Function. Wil je de inhoud van een cilinder (een buis) berekenen, dan heb je de straal en de hoogte nodig. De formule voor cilinderinhoud is: Pi * r kwadraat * hoogte Wil je dat met één Excel-formule berekenen, dan schrijf je hiervoor je eigen functie in VBA, als volgt. Open de Visual Basic Editor, dubbelklik in de Projectverkenner op de werkmap waarin je deze functie wilt plaatsen. Klik op Invoegen en op Module; er verschijnt een blanco codeblad. Neem daarin de volgende code over: Function CILINDERINHOUD(Straal As Single, Hoogte As Single) As Double Pi = WorksheetFunction.Pi() CILINDERINHOUD = Pi * Straal ^ 2 * Hoogte / 1000 End Function Typ vervolgens in het Excel-werkblad een formule met deze functie. De opbouw van deze formule is: =CILINDERINHOUD(straal; hoogte) Tussen de haakjes geef je eerst de straal van de cilinder op; na een puntkomma de hoogte. Je voert deze getallen in de formule in of je verwijst hiervoor naar twee cellen. Geef de straal en de hoogte op centimeters. Het resultaat is de inhoud van de cilinder, in liters. Let op: je geeft de straal van de cilinder op, dus niet de diameter. Let op: in de VBA-code moet je de beide argumenten scheiden met een komma, maar in de formule typ je daar een puntkomma tussen, zoals in elke Excel-formule met meer argumenten (althans, als je in Windows in het Nederlands werkt). Voor een buis met bijvoorbeeld een straal van 4 centimeter en een hoogte van 20 centimeter is de formule: =CILINDERINHOUD(4;20) Je ziet dat deze buis 1 liter water kan bevatten. Inhoud van een bol berekenen met BOLINHOUDWil je de inhoud van een bol (of bal) berekenen met één formule?
Die inhoud wordt berekend met 4/3 * Pi * r3 (vierderde maal pi maal de straal tot de derde) Om dat met één formule in Excel te vinden, schrijf je je eigen functie in VBA. Neem de volgende code over (deze mag in dezelfde module, onder de vorige code). Function BOLINHOUD(Straal As Single) As Double Pi = WorksheetFunction.Pi() BOLINHOUD = 4 / 3 * Pi * Straal ^ 3 End Function Typ vervolgens in het Excel-werkblad een formule met deze functie. De opbouw van deze formule is: =BOLINHOUD(straal) Tussen de haakjes geef je de straal van de bol op. Je voert dit getal in de formule in of je verwijst hiervoor naar een cel. Het resultaat is de inhoud van de bol, in liters. De formule luidt bijvoorbeeld: =BOLINHOUD(28,7941) Geef je de straal in centimeters op, dan krijg je de uitkomst in kubieke centimeters. Wil je de uitkomst in liters, dan deel je die door 1000 (1 liter is 1000 cm3). Hiervoor voeg je aan de laatste regel van de code / 1000 toe. Zo is de uitkomst met dit voorbeeld 100 liter. Een voetbal maat 5 heeft een diameter van 23 centimeter, dus een straal van 11,5 centimeter. Deze 'bol' heeft een inhoud van 6,371 liter. |
Meer eigen functies programmeren?Deze voorbeelden komen uit het boek:
Excel VBA voor professionals, Derde editie |