L’instruction Option Explicit intercepte non seulement les variables non déclarées mais aussi les chaînes non mises entre guillemets. Ainsi, le code
Option Explicit
Dim strComputer
strComputer = PC1
entraîne un message d’erreur Variable is
Option Explicit
undefined parce que le moteur de scripting interprète PC1 comme une variable et non comme une chaîne, du fait de l’absence de guillemets. Si vous omettez l’instruction Option Explicit dans le code précédent, ce qui donne
Dim strComputer
strComputer = PC1
WScript.Echo strComputer
il n’y a pas d’erreur. Le moteur de scripting suppose dans ce cas l’existence de deux variables : strComputer et PC1. Et donc, au lieu de considérer le signe égal (=) comme un opérateur d’assignation, et donc d’assigner la valeur de PC1 à la variable strComputer, le moteur de scripting lit = comme l’opérateur égal à et rend la variable strComputer égale à la variable PC1.
Les variables peuvent poser d’autres problèmes. Avezvous déjà reçu un message d’erreur Type mismatch ou Name redefined ? Voyons ce qui cause ces erreurs liées aux variables et quelques autres. Expected end of statement (1025). Quand un nom de variable contient un point imbriqué, vous recevez le message Expected end of statement. Ce message d’erreur peut aussi résulter d’autres erreurs, comme l’utilisation involontaire d’une virgule au lieu d’un point dans un nom d’objet. Type mismatch (13). Si vous essayez d’effectuer une opération en utilisant des variables dont le contenu n’est pas approprié pour cette opération, vous recevez le message d’erreur Type mismatch. Ainsi, le code
Option explicit
Dim A, B, C, D
A = 25
B = 105
C = "Combined weight: "
D = A + C
VBScript.Echo C & D
produit le message d’erreur Type mismatch parce qu’il essaie d’ajouter une chaîne à un nombre.
Dans son article « Quick Scripting Tips », Christa Anderson vous recommande de « nommer les variables d’après le genre de données qu’elles représentent (par exemple, donner des noms de chaînes qui commencent par la lettre c et des noms d’objets qui commencent par un o). Cette pratique facilite le débogage du code. Certaines expressions ne fonctionneront pas ou fonctionneront de manière différente avec des données d’un type inattendu. Et si vous savez quel type de données vous avez l’intention de fournir à un script, il est plus facile de démêler les erreurs de discordance de type ». La section VBScript Coging Conventions dans le fichier d’aide Windows Script (WS) 5.6 (script56.chm) contient une liste de préfixes recommandés pour des variables. Ainsi, si vous ajoutez les préfixes recommandés au code précédent pour obtenir
Option Explicit
Dim intA, intB, strC, intD
intA = 25
intB = 105
intC = "Combined weight: "
intD = intA + strC
VBScript.Echo strC & intD
il est probable que vous constaterez immédiatement l’erreur et que vous remplacerez strC par IntB dans la sixième ligne. Name redefined (1041). Le message d’erreur Name redefined indique qu’un nom de variable n’est pas unique. Le plus simple pour éviter cette erreur est d’utiliser des noms de variables significatifs. Par exemple, au lieu de intA, intB et strC et intD, il vaut mieux choisir les noms intMiniesWeight, IntBrutusWeight, strLabel et IntBothDogsWeight, respectivement. Cette liste de messages d’erreur n’est nullement exhaustive.
Il est probable que vous en rencontrerez beaucoup d’autres types. L’encadré « Autres ressources » recense plusieurs ressources qui traitent des messages d’erreur de scripting courants.
Téléchargez cette ressource
Mac en entreprise : le levier d’un poste de travail moderne
Ce livre blanc répond aux 9 questions clés des entreprises sur l’intégration du Mac : sécurité, compatibilité, gestion, productivité, coûts, attractivité talents, RSE et IA, et l’accompagnement sur mesure proposé par inmac wstore.
Les articles les plus consultés
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Activer la mise en veille prolongée dans Windows 10
- Afficher les icônes cachées dans la barre de notification
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Et si les clients n’avaient plus le choix ?
Les plus consultés sur iTPro.fr
- De l’inventaire à l’action : l’Asset Management au service d’un Numérique plus responsable
- IA et bureaucratie : la complexité qui grève les projets
- IA dans les services financiers : priorité stratégique, mais passage à l’échelle sous tension
- Data streaming : le nouveau socle stratégique de l’IA en entreprise
Articles les + lus
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Computex 2026 : 5 signaux forts à retenir
À la une de la chaîne Tech
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- Computex 2026 : 5 signaux forts à retenir
