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
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Communication d’entreprise à l’ère de l’IA : fragmentation, Shadow AI et perte de contrôle
- Pourquoi les outils de sécurité ne suffisent plus face aux angles morts de la détection
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- L’analytique prédictive au service de la décarbonation en France
Articles les + lus
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
À la une de la chaîne Tech
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
