web-dev-qa-db-fra.com

800A0401 - Fin prévue du relevé

J'ai créé un fichier .vbs pour créer un dossier dans Outlook. J'ai copié la plupart du script directement à partir de MSDN et j'ai obtenu une réponse "Expected End of Statement" avec le code d'erreur 800A0401.

Option Explicit
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.Folder
Dim myNewFolder As Outlook.Folder

Set myNameSpace = Application.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myNewFolder = myFolder.Folders.Add("Postini")

Wscript.Echo "Folder created"
Wscript.Quit

Jamais créé de script .vbs auparavant. Je ne sais pas ce que je manque.

Windows 7 64 bits et Outlook 2010. Exécution en tant qu'administrateur local.

13
gravyface

Cette erreur est due au fait que vous ne pouvez pas atténuer des variables comme quelque chose en particulier dans VBS. Dit plus explicitement, l'instruction "Dim" est utilisée sans définir le type de variable dans VBScript car toutes les variables dans VBScript sont automatiquement de type Variant. Si vous essayez de dim une variable comme quoi que ce soit, il générera une erreur.

Au lieu de cela, vous voulez:

Dim myNameSpace
Dim myFolder
Dim myNewFolder

De plus, vous semblez avoir copié du VBA à partir d'Outlook et essayé de l'exécuter en tant que VBS.

VBscript ne sait pas comment interpréter Application.GetNameSpace("MAPI").

Vous devrez également créer une application Outlook.

dim myOutlook
set myOUtlook = CreateObject("Outlook.Application")

De plus, comme vous ne pouvez pas fournir de références dans VBS, vous devez utiliser une liaison tardive pour tous les objets (c'est pourquoi j'ai utilisé CreateObject.) Ainsi, la réécriture de votre code est la suivante:

Option Explicit
Dim myOutlook
Dim myNameSpace
Dim myFolder
Dim myNewFolder

set myOUtlook = CreateObject("Outlook.Application")
Set myNameSpace = myOutlook.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(6) '6 is the value of olFolderInbox
Set myNewFolder = myFolder.Folders.Add("Postini")  
Wscript.Echo "Folder created"
Wscript.Quit
31
Daniel