Samenvatting
In de versies van Microsoft Excel die worden vermeld in de sectie 'Van toepassing op', kunt u een door de gebruiker gedefinieerde functie maken die een aangepaste berekening retourneert met behulp van Visual Basic for Applications. Door de gebruiker gedefinieerde functies kunnen echter geen acties uitvoeren waarmee de Microsoft Excel-omgeving wordt gewijzigd wanneer deze wordt aangeroepen door een formule in een werkbladcel.
Meer informatie
Een door de gebruiker gedefinieerde functie die wordt aangeroepen door een formule in een werkbladcel, kan de omgeving van Microsoft Excel niet wijzigen. Dit betekent dat een dergelijke functie geen van de volgende handelingen kan uitvoeren:
-
Cellen in het werkblad invoegen, verwijderen of opmaken.
-
De waarde van een andere cel wijzigen.
-
Werkbladen verplaatsen, de naam ervan wijzigen, verwijderen of toevoegen aan een werkmap.
-
Wijzig een van de omgevingsopties, zoals de berekeningsmodus of schermweergaven.
-
Namen toevoegen aan een werkmap.
-
Eigenschappen instellen of de meeste methoden uitvoeren.
Het doel van door de gebruiker gedefinieerde functies is om de gebruiker in staat te stellen een aangepaste functie te maken die niet is opgenomen in de functies die worden geleverd met Microsoft Excel. De functies in Microsoft Excel kunnen de omgeving ook niet wijzigen. Functions kan een berekening uitvoeren die een waarde of tekst retourneert naar de cel waarin ze zijn ingevoerd. Eventuele omgevingswijzigingen moeten worden aangebracht met een Visual Basic-subroutine. Tijdens de berekening worden de precedenten onderzocht van de cel die een door de gebruiker gedefinieerde functie bevat. Als niet alle precedenten tot nu toe zijn berekend tijdens het berekeningsproces, roept Excel uiteindelijk de door de gebruiker gedefinieerde functie aan en geeft een Null- of Lege cel door aan de functie. Excel zorgt er vervolgens voor dat er voldoende berekeningen worden uitgevoerd om alle precedenten te berekenen. Tijdens de laatste berekening worden de huidige waarden van de cellen doorgegeven aan de door de gebruiker gedefinieerde functie. Dit kan ertoe leiden dat de door de gebruiker gedefinieerde functie vaker wordt aangeroepen dan verwacht en onverwachte argumenten heeft. Daarom kan de door de gebruiker gedefinieerde functie onverwachte waarden retourneren.Voor de juiste berekening moeten alle bereiken die in de berekening worden gebruikt, als argumenten worden doorgegeven aan de functie. Als u de berekeningsbereiken niet doorgeeft als argumenten, in plaats van te verwijzen naar de bereiken in de VBA-code van de functie, kan Excel deze niet in de berekeningsengine verantwoorden. Daarom kan Excel de werkmap niet adequaat berekenen om ervoor te zorgen dat alle precedenten worden berekend voordat de door de gebruiker gedefinieerde functie wordt berekend.
Verwijzingen
"Visual Basic User's Guide" versie 5.0, Hoofdstuk 4, "What Is a Visual Basic Procedure" "Writing a user-defined werkblad function", Microsoft Excel 7.0 Visual Basic Help File.