Comment utiliser l’instruction explicite d’option dans VBA ?

Points clés

  • L’option Explicit vous oblige à déclarer toutes les variables .
  • C’est une déclaration que vous pouvez utiliser au début d’un module .
  • Vous pouvez le saisir manuellement ou l’activer à partir des options.
  • Vous devez utiliser Option Explicit une seule fois.
  • Il vous aide également à identifier les erreurs de frappe lors de l’utilisation de variables.

Qu’est-ce que l’option VBA explicite

Option Explicit est une instruction que vous pouvez utiliser au début d’un module pour vous forcer à déclarer toutes les variables. Lorsque vous ajoutez cette instruction, VBA vous montre une erreur de compilation lorsque vous exécutez le code et met également en surbrillance la variable dans le code que vous devez déclarer.

vba-option-explicite

Lorsque vous ajoutez une option explicite au début d’un module, VBA ajoute une ligne de séparation en dessous, puis vous pouvez commencer à écrire une procédure. Et lorsque vous avez l’option déclaration explicite et que vous exécutez une procédure, VBA vérifie s’il existe une variable non déclarée et vous affiche un message d’erreur.

Option Explicit
Sub myMacro()
a = 50
MsgBox a
End Sub   
vba-ajoute une ligne de séparation

Ci-dessus se trouve le message que vous obtenez lorsqu’une variable n’est pas déclarée.

Activer l’option explicite dans VBA

Pour activer l’instruction explicite d’option dans un module, procédez comme suit.

  1. Tout d’abord, ouvrez Visual Basic Editor et dans le menu Outils, cliquez sur les options.
    activate-option-explicit-in-vba
  2. Après cela, dans les options, accédez à l’onglet de l’éditeur et cochez la case « Exiger une déclaration de variable ».
    editor-tab-and-tick-mark
  3. À la fin, cliquez sur OK.
  4. Une fois que vous faites cela, VBA ajoutera une option explicite chaque fois que vous ajouterez un nouveau module.

Mais il n’ajoute pas cette déclaration à votre module existant, vous devez donc les ajouter manuellement à chacun des modules existants un par un.

Comment l’ajouter manuellement ?

Comme je l’ai mentionné, l’instruction Option Explicit doit passer avant la première procédure du module (Sub ou Function). Vous devez donc ajouter cette déclaration au-dessus de la première procédure (zone des déclarations générales) et vous assurer de ne l’ajouter qu’une seule fois.

zone-des-declarations-generales

Si vous l’ajoutez dans une procédure ou entre deux procédures, VBA vous affichera une erreur lorsque vous tenterez d’exécuter l’un des codes du module.

vba-va-vous-montrer-une-erreur

Exemples (Pourquoi utiliser Option Explicit Statement est une bonne habitude)

Permettez-moi de vous montrer un exemple pour vous faire comprendre pourquoi l’instruction Option Explicit est fortement recommandée. Regardez le code suivant.

Sub myMacro()
  Dim myText As String    
  myText = "Puneet"    
  MsgBox   MyTxt    
End Sub

Dans ce code, j’ai déclaré une variable « myText » en tant que chaîne, puis défini la valeur de cette variable. Et à la fin, j’ai utilisé une boîte de message qui affiche la valeur de la variable, mais si vous regardez attentivement, j’ai mal orthographié cette variable comme « MyTxt » au lieu de « myText ».

variable-déclarée

Maintenant, lorsque j’exécute ce code , il m’affiche une boîte de message vide.

boîte de message vide

J’ai besoin de vos 2 minutes pour vous aider à comprendre le vrai problème ici. Lorsque j’ai mal tapé le nom de la variable, VBA le prend comme une variable distincte, et comme je n’utilise pas l’instruction explicite d’option, cela ne me montre pas d’erreur.

erreur de frappe dans le nom de la variable

C’est pourquoi la boîte de message utilise la deuxième variable (mal typée) qui n’a pas de valeur qui lui est assignée. Réfléchissez maintenant une seconde; si vous écrivez un code long et que vous n’utilisez pas d’instructions explicites d’option, il vous sera difficile de retracer cette erreur jusqu’à ce que vous ayez relu tout le code.

Mais avec l’option déclaration explicite ON, lorsque j’exécute ce code, une erreur s’affiche.

utiliser-option-explicite
Option Explicit
Sub myMacro()
Dim myText As String 
myText = "Puneet" 
MsgBox MyTxt 
End Sub

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *