2012-10-09 21 views
10

He creado un archivo .vbs para crear una carpeta en Outlook. Copié la mayor parte del script directamente de MSDN y recibí una respuesta del código de error "Expected End of Statement" 800A0401.800A0401 - Fin esperado de la instrucción

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 

Nunca se ha creado una secuencia de comandos .vbs anteriormente. No estoy seguro de lo que me estoy perdiendo.

Windows 7 de 64 bits y Outlook 2010. Ejecutar como administrador local.

Respuesta

23

Este error se debe a que no se pueden atenuar las variables como algo en particular en VBS. Dicho más explícitamente, la instrucción "Dim" se usa sin definir el tipo de variable en VBScript porque todas las variables en VBScript son automáticamente de tipo Variant. Si intenta atenuar una variable como cualquier cosa, arrojará un error.

su lugar, desea:

Dim myNameSpace 
Dim myFolder 
Dim myNewFolder 

Además, parece que acaba de copiar algunos de VBA desde Outlook y trató de ejecutarlo como VBS.

VBscript no sabe cómo interpretar Application.GetNameSpace("MAPI").

También deberá crear una aplicación de Outlook. (. Por lo que he usado CreateObject)

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

También, ya que no puede proporcionar referencias en VBS, usted tiene que utilizar el enlace de cualquier objeto Así reescrito el código es el siguiente:

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 
+0

Oh, no estoy seguro si VBScript es sensible a las mayúsculas y minúsculas porque tiene 'myOUtlook' en su primera línea de" conjunto ". – gravyface

+0

No es así, al igual que VBA técnicamente no distingue entre mayúsculas y minúsculas. La diferencia es que en VBA el IDE actualizará automáticamente cualquier incoherencia de mayúsculas. –