この ID がどのように役立つかわかりません。Visio でエラーが発生したと思われます。試してみましたか
on error resume next
エラーが発生する可能性のある各行の後
if err.number <> 0 then
wscript.echo err.description
err.clear
end if
パラメータを省略すると問題があるようですので、すべて使用してください。値については、 http://msdn.microsoft.com/en-us/library/office/ms409271 (v=office.12).aspx を参照してください。use を終了する前にdocument.saved = true
、まず結果ファイルが存在するかどうかを確認できます。
EDIT:プロセスが実行されているかどうかを確認します。サービスの名前を変更する必要がある可能性があります(téaskmanagerを確認してください)
set service = GetObject ("winmgmts:")
for each Process in Service.InstancesOf ("Win32_Process")
If lcase(Process.Name) = "visio.exe" then
wscript.echo "visio still running"
wscript.quit
End If
next
wscript.echo "visio no longer running"
EDIT2: アクティブな visio アプリのプロセス ID を取得します (複数の Visio インスタンスが実行されている場合、GetObject はアクティブなインスタンスを返します。プログラムがアドオンとして実行されるか、図形をダブルクリックして実行されると、アクティブなインスタンスはプログラムが実行されたもの. それ以外の場合, それは最後に実行された、または最前面に移動されたインスタンスです. Visio インスタンスが実行されていない場合, GetObject はエラーを引き起こします) cfr http://webmail.vh.com.tw/ Microsoft/Developing%20Microsoft%20Visio%20Solutions/27.htm
set appObj = GetObject(, "visio.application")
if appObj Is Nothing Then
wscript.echo "There is no active Visio."
else
wscript.echo "ProcessID: " & appObj.ProcessID
end if