Quand il est logique d'utiliser l'option Explicit - Excel Tips

Table des matières

Il semble que j'ai provoqué une certaine angoisse au fil des ans à cause de ma position controversée selon laquelle Option Explicit n'est pas utile dans VBA. Je me suis souvenu de cela récemment lorsque j'ai fait une session Skype à Excel Weekend of Brazil. J'ai écrit un livre sur Excel VBA pour QUE. Ce livre a été traduit en portugais pour le marché brésilien. Donc, apparemment, j'ai enseigné Excel VBA aux braves gens du Brésil pendant 15 ans. Maintenant que j'ai 15 ans de plus et plus sage, je reconnais qu'il y a peut-être de bonnes raisons d'utiliser Option Explicit.

À Notre Dame, j'ai suivi des cours de commerce avec une forte concentration en programmation. À travers un ensemble de circonstances étranges, j'ai suivi tous les cours de programmation disponibles à ND dans les écoles d'ingénierie et de commerce. J'ai appris Fortran, Pascal, Assembler et COBOL. J'ai adoré la programmation. Ces cours de programmation ont sauvé mon GPA et m'ont empêché d'être expulsé. À l'époque, nos professeurs nous ont dit que nous devions planifier notre programme et dessiner à la main des organigrammes avant de commencer à coder. J'étais un rebelle. J'écrirais d'abord le programme, puis je dessinais l'organigramme après avoir terminé.

J'ai passé les 18 premiers mois de ma carrière à écrire des programmes COBOL. Mais ensuite, j'ai été transféré à la finance et j'ai passé dix ans à travailler dans la finance et la comptabilité. Je faisais principalement du travail de comptabilité, mais quand j'avais besoin d'écrire du code, j'en savais assez pour écrire du code.

J'ai programmé des macros dans Lotus 1-2-3 puis j'ai commencé à écrire des macros VBA après notre passage à Excel en 1995. J'étais encore rebelle à ce moment-là: déclarer mes variables à l'avance ressemblait trop à dessiner un organigramme avant d'écrire le code. Je ne suis jamais du genre à planifier à l'avance. Plongez-vous. Commencez à coder. Si vous avez besoin d'une nouvelle variable quelque part en cours de route, créez simplement la variable.

J'étais un rebelle, écrivant le code d'abord et dessinant l'organigramme plus tard. Déclarer des variables, dis-je, est pour les programmeurs formels. Si vous travaillez dans la comptabilité et que vous supprimez simplement 20 lignes de code, il n'y a aucune raison de déclarer vos variables à l'avance.

Ma position à ce sujet m'a amené à des disputes amicales avec d'autres experts d'Excel. Jordan Goldmeier. Bob Phillips. Cristiano Galvão.

Tout d'abord, j'ai toujours recommandé de déclarer vos variables d'objet. Dans le code ci-dessous, WSD est déclaré en tant que feuille de calcul et attribué à l'aide de la commande Set. Si vous déclarez la variable objet, vous pouvez parcourir toutes les propriétés et méthodes en tapant la variable suivie d'un point.

La déclaration de variables d'objet conduit à cette saisie semi-automatique utile

En n'utilisant pas Option Explicit, vous courez le risque d'erreurs d'orthographe. Dans le code ci-dessous, une variable appelée FinalRow est créée. Dans la ligne suivante, je voulais probablement faire une boucle de 2 à FinalRow, mais j'ai mal tapé la variable comme Fina1Row.

Il y a des décennies, les machines à écrire IBM Selectric omettaient la touche 1 parce que les gens tapaient plutôt un L minuscule.

Sans Option Explicit, quelqu'un peut ne pas réaliser que la faute de frappe est là. La variable FinalRow peut contenir 100. Mais le code à l'intérieur de la boucle ne s'exécutera pas car la variable Fina1Row n'a jamais été initialisée et contiendra un zéro.

Pour éviter la frustration de déboguer le code avec des erreurs de frappe potentielles, vous pouvez ouvrir Outils, Options dans le menu VBA. Choisissez la case Exiger une déclaration de variable ci-dessous.

Pour détecter les fautes de frappe, cochez cette case.

Tous les futurs modules commenceront par une ligne indiquant Option Explicit. Vous devrez ajouter de nouvelles lignes en haut de la macro définissant les variables FinalRow et i. Excel ne vous informera pas de la faute d'orthographe tant que vous n'aurez pas réellement essayé d'exécuter la macro. Ils vous alerteront alors que la variable n'est pas définie.

Le mot en surbrillance est mal orthographié.

Alors, c'est votre appel. Si cela ne vous dérange pas de planifier à l'avance et de déclarer toutes vos variables, vous aurez le filet de sécurité de VBA vous indiquant si vous avez mal tapé une variable. Pour moi, je préfère le frisson de déboguer le code une ligne à la fois et de trouver mes erreurs de frappe par moi-même. Mais si vous n'avez pas envie de vivre dangereusement, n'hésitez pas à activer Option Explicit.

Je ne sais pas vraiment si mes actions impliquaient les étapes 5, 8 ou 9 des 12 étapes. Mais si quelqu'un a passé plus de temps à déboguer son code à cause d'une erreur de frappe, je suis désolé de vous avoir causé cette douleur.

Tous les samedis, je discuterai de l'une de mes mauvaises habitudes dans Excel et expliquerai pourquoi vous devriez peut-être faire ce que je dis au lieu de faire ce que je fais.

Excellente pensée du jour

J'ai demandé à mes amis Excel Master leurs conseils sur Excel. Pensée d'aujourd'hui à méditer:

«Ne changez pas les développeurs de feuilles de calcul en milieu de mêlée.

Jordan Goldmeier

Articles intéressants...