web-dev-qa-db-ja.com

800A0401-ステートメントの終了予定

Outlookでフォルダーを作成するために.vbsファイルを作成しました。 [〜#〜] msdn [〜#〜] からほとんどのスクリプトをコピーし、「Expected End of Statement」エラーコード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

以前に.vbsスクリプトを作成したことはありません。何が欠けているのかわかりません。

Windows 7 64ビットおよびOutlook2010。ローカル管理者として実行。

13
gravyface

このエラーは、VBSで特に変数を薄暗くできないためです。 VBScriptのすべての変数は自動的にVariant型であるため、VBScriptの変数タイプを定義せずに「Dim」ステートメントを明示的に使用すると言います。変数を何かとして暗くしようとすると、エラーがスローされます。

代わりに、あなたが欲しい:

_Dim myNameSpace
Dim myFolder
Dim myNewFolder
_

さらに、OutlookからVBAをコピーして、VBSとして実行しようとしたようです。

VBscriptはApplication.GetNameSpace("MAPI")の解釈方法を知りません。

Outlookアプリケーションも作成する必要があります。

_dim myOutlook
set myOUtlook = CreateObject("Outlook.Application")
_

また、VBSで参照を提供できないため、オブジェクトには遅延バインディングを使用する必要があります(これがCreateObjectを使用した理由です)。したがって、コードを次のように書き直します。

_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