Wanneer het zinvol is om optie expliciet te gebruiken - Excel-tips

Inhoudsopgave

Het lijkt erop dat ik door de jaren heen wat angst heb veroorzaakt vanwege mijn controversiële standpunt dat Option Explicit niet bruikbaar is in VBA. Ik werd hier onlangs aan herinnerd toen ik een Skype-sessie deed tijdens Excel Weekend of Brazil. Ik heb een boek geschreven over Excel VBA voor QUE. Dat boek is voor de Braziliaanse markt in het Portugees vertaald. Dus blijkbaar heb ik de fijne mensen van Brazilië 15 jaar over Excel VBA geleerd. Nu ik 15 jaar ouder en wijzer ben, geef ik toe dat er wellicht goede redenen zijn om Option Explicit te gebruiken.

Bij Notre Dame heb ik zakelijke cursussen gevolgd met een sterke concentratie in programmeren. Door een aantal rare omstandigheden heb ik elke programmeercursus gevolgd die beschikbaar is bij ND van zowel de Engineering- als de Business School. Ik leerde Fortran, Pascal, Assembler en COBOL. Ik hield van programmeren. Die programmeercursussen hebben mijn GPA gered en ervoor gezorgd dat ik niet weggegooid werd. Vroeger vertelden onze professoren ons dat we ons programma moesten plannen en stroomdiagrammen met de hand moesten tekenen voordat we begonnen met coderen. Ik was een rebel. Ik zou eerst het programma schrijven en daarna het stroomschema tekenen als ik klaar was.

Ik heb de eerste 18 maanden van mijn carrière besteed aan het schrijven van COBOL-programma's. Maar toen stapte ik over naar Finance en werkte ik tien jaar in Finance en Accounting. Ik deed voornamelijk boekhoudkundig werk, maar toen ik wat code moest schrijven, wist ik genoeg om wat code te schrijven.

Ik programmeerde macro's in Lotus 1-2-3 en begon toen VBA-macro's te schrijven nadat we in 1995 naar Excel waren overgestapt. Ik was toen nog rebels: het van tevoren aangeven van mijn variabelen leek te veel op het tekenen van een stroomschema voordat ik de code schreef. Ik ben nooit iemand die vooruit plant. Duik erin. Begin met coderen. Als je onderweg ergens een nieuwe variabele nodig hebt, maak dan gewoon de variabele aan.

Ik was een rebel, schreef eerst de code en tekende later het stroomschema Variabelen declareren, zo stelde ik, is voor formele programmeurs. Als u in de boekhouding werkt en gewoon 20 regels code verwijdert, is er geen reden om uw variabelen van tevoren te declareren.

Mijn standpunt hierover heeft me in een aantal vriendschappelijke discussies gebracht met andere Excel-experts. Jordan Goldmeier. Bob Phillips. Cristiano Galvão.

Ten eerste heb ik altijd aanbevolen om uw objectvariabelen te declareren. In de onderstaande code wordt WSD gedeclareerd als een werkblad en toegewezen met de opdracht Set. Als u de objectvariabele declareert, kunt u door alle eigenschappen en methoden bladeren door de variabele te typen gevolgd door een punt.

Het declareren van objectvariabelen leidt tot deze handige AutoAanvullen

Door Option Explicit niet te gebruiken, loop je het risico op spelfouten. In de onderstaande code wordt een variabele met de naam FinalRow gemaakt. In de volgende regel was ik waarschijnlijk van plan om van 2 naar FinalRow te gaan, maar ik typte de variabele verkeerd als Fina1Row.

Tientallen jaren geleden lieten IBM Selectric typerwriters de 1-toets weg omdat mensen in plaats daarvan een kleine letter L zouden typen.

Zonder Option Explicit realiseert iemand zich misschien niet dat de typefout er is. De variabele FinalRow kan 100 bevatten. Maar de code in de lus wordt niet uitgevoerd omdat de variabele Fina1Row nooit is geïnitialiseerd en een nul zal bevatten.

Om te voorkomen dat de frustratie van het debuggen van code met mogelijke typefouten voorkomt, kunt u Extra, Opties openen in het VBA-menu. Kies het onderstaande vak Variabele declaratie vereisen.

Vink dit vakje aan om typefouten op te vangen.

Alle toekomstige modules beginnen met een regel die Option Explicit zegt. U moet nieuwe regels toevoegen bovenaan de macro die de variabelen FinalRow en i definiëren. Excel vertelt u pas over de spelfout als u de macro daadwerkelijk probeert uit te voeren. Ze zullen u dan waarschuwen dat de variabele niet is gedefinieerd.

Het gemarkeerde woord is verkeerd gespeld.

Het is dus uw beslissing. Als je het niet erg vindt om vooruit te plannen en al je variabelen te declareren, zal het vangnet van VBA je vertellen of je een variabele verkeerd hebt getypt. Voor mij geef ik er de voorkeur aan om de code regel voor regel te debuggen en mijn typefouten zelf te vinden. Maar als u geen zin heeft om gevaarlijk te leven, kunt u Option Explicit inschakelen.

Ik weet niet echt zeker of mijn acties betrekking hadden op stap 5, 8 of 9 van de 12 stappen. Maar als iemand extra tijd heeft besteed aan het debuggen van hun code vanwege een typefout, spijt het me dat ik u die pijn heb bezorgd.

Elke zaterdag bespreek ik een van mijn slechte gewoonten in Excel en bespreek ik waarom je misschien moet doen wat ik zeg in plaats van te doen wat ik doe.

Excel-gedachte van de dag

Ik heb mijn Excel Master-vrienden om advies over Excel gevraagd. De gedachte van vandaag om na te denken:

"Verander spreadsheetontwikkelaars niet halverwege de scrum."

Jordan Goldmeier

Interessante artikelen...