Question

Dans une macro pour Visual Studio 6, je voulais exécuter un programme externe, j'ai donc tapé :

shell("p4 open " + ActiveDocument.FullName)

Ce qui m'a donné une erreur d'exécution d'incompatibilité de type.Ce que j'ai fini par devoir taper, c'est ceci :

Dim wshShell
Set wshShell = CreateObject("WScript.Shell")
strResult = wshShell.Run("p4 open " + ActiveDocument.FullName)

Qu'est-ce qui se passe ici?Est-ce que ces absurdités sont vraiment nécessaires ou ai-je raté quelque chose ?

Était-ce utile?

La solution

Comme lassevk souligné, VBScript n'est pas Visual Basic.

Je crois que le seul objet intégré dans VBScript est l'objet WScript.

WScript.Echo "Hello, World!"

À partir des documents

L'objet WScript est l'objet racine de la hiérarchie du modèle d'objet hôte de script Windows.Il n'a jamais besoin d'être instancié avant d'invoquer ses propriétés et ses méthodes, et il est toujours disponible à partir de n'importe quel fichier de script.

Tout le reste doit être créé via l'appel CreateObject.Certains de ces objets sont répertorié ici.

L'objet Shell est l'un des autre objets que vous devez créer si vous souhaitez y appeler des méthodes.

Une mise en garde est que RegExp est sorte de intégré, dans la mesure où vous pouvez instancier un objet RegExp comme ceci dans VBScript :

Dim r as New RegExp

Autres conseils

VBScript n'est pas Visual Basic.

Essayez ceci :

Shell "p4 open" & ActiveDocument.FullName

VB6 utilise & pour concaténer des chaînes plutôt que +, et vous devez vous assurer que le nom du fichier est mis entre guillemets en cas d'espaces.Essayez-le comme ceci :

Shell "p4 open """ & ActiveDocument.FullName & """"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top