我有一個VBScript,通過在不可見模式下使用Visio.Application
在後臺打開Visio文件。抑制Visio.Application警報
Set Visioapp = CreateObject("Visio.Application")
Visioapp.Visible = False
Set Visio = Visioapp.Documents.Open(VisioFile)
這工作正常,除非我嘗試打開一個文件,在我正在處理它時生成彈出窗口。如果發生這種情況,應用程序將顯示一條警告通知用戶,但由於應用程序對用戶是不可見的(或者在用戶不在場的情況下運行),腳本會無限期地掛起,等待不會來的輸入。
如果我正在爲Excel或Word編寫VBA代碼,我可以使用Application.DisplayAlerts = False
(和/或可能DisplayEvents
)。但在我的VBScript中,Visio應用程序沒有該屬性。 Visioapp.DisplayAlerts = False
將給我錯誤「對象不支持此屬性或方法」。
如何禁止從VBScript打開的Visio應用程序生成的彈出窗口?
如果Visio中有'Application.DisplayAlerts'並已設置'Visioapp'成爲Visio應用程序對象的實例(這是你所做的),那麼你可以嘗試'Visioapp.DisplayAlerts = False',它應該工作... – Dave
@Dave我同意,但是這給了我一個錯誤(澄清了問題)。通過該擴展,問題可能是Visio應用程序實際上沒有該屬性? – Lilienthal
VBS沒有理由不能做VBA可以用Object做的事情。編程語言自動生成VBS從早期綁定VBA對象(基於IDispatch)使用的後期綁定對象(儘管VBA可以通過Early或Late綁定來訪問它)。它們都會在VBA對象中運行代碼,因爲VBS對象只是轉發呼叫。 – 2016-10-10 13:17:08