教えて!gooにおける不適切な投稿への対応について

vbsからExcelのマクロを呼び出しExcelを閉じる処理を以下のように実施しています。
その際に保存ダイアログが表示されてしまうため非表示としようとコメントアウトされている
ように変更しました。
そしたらダイアログは表示されなくなりましたがstrTextの値が返却されなくなってしまいました。
原因がよくわからないのですがわかりましたらご教授ください。

Set oApp = CreateObject("Excel.Application")
oApp.Workbooks.Open WScript.Arguments(0)

strText = oApp.Run("CheckText")

oApp.DisplayAlerts = False
'oApp.Workbooks.Close saveChanges:=False
oApp.Workbooks.Close

Set oApp = Nothing
WScript.echo(strText)

gooドクター

A 回答 (2件)

こんばんは。



単体でファイルを開けたら、単体でファイルを閉じればいいのでは?
その時に、ファイル変更のSaved =False は、初めて通用するはずです。
後は、CheckText の内容ですが、CheckTextの戻り値が、
strText に入っているかの確認はしていません。

できれば、On Error Resume Next を入れておいたほうが無難だと
は思いますが……。

一例:
'-------------------------------------
Set oApp = CreateObject("Excel.Application")
Set xlWb =oApp.Workbooks.Open(WScript.Arguments(0))
strText = oApp.Run("CheckText")
xlWb.Close False
Set oApp = Nothing
WScript.echo(strText)
'-------------------------------------
    • good
    • 0

Workbooks.Close saveChanges:=False


以外で保存ダイアログの表示を
止めるには
workbooks.saved=true

Application.DisplayAlerts = False
があるのでは?

ためされては?
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング