2016-11-11 28 views
0
Dim AppVisio  
    Set AppVisio = CreateObject("visio.InvisibleApp") 
    Dim vsoDoc 

    Set vsoDoc = AppVisio.Documents.Open("PathName\Drawing1.vsd") 

嗨,關閉現有的Visio文件而不保存

我上面的代碼塊(工作),打開一個文件。但是,當這個文件已經打開時,我希望它自動關閉而不保存更改。

不幸的是我無法找到一個代碼,如

AppVisio.Documents.Close ("PathName\Drawing1.vsd") 

任何其他選項,以強制關閉它應該被打開的文件是大加讚賞。

回答

2
Dim vsoDoc 

您已經聲明它作爲一個文檔對象(而不是文件)的一部分Variant - 這是等價的:

Dim vsoDoc As Variant 

而且,如果您之後立即放置斷點在Set vsoDoc =聲明,請立即窗格(按Ctrl + G),然後鍵入

?TypeName(vsoDoc) 

你會看到,它會打印Document。因此,你可以用一個Document類型,而不是將它聲明:

Dim vsoDoc As Document 

然後當你想關閉這個vsoDoc,你的工作,對象,並調用其Close方法:

Set vsoDoc = AppVisio.Documents.Open("PathName\Drawing1.vsd") 
'do stuff... 
vsoDoc.Close 

vsoDoc變量您的文檔對象。聲明As Document將爲您提供智能感知/自動完成功能,因此當您在vsoDoc.中輸入點時,會在編輯器中看到一個下拉列表,顯示所有文檔的成員。

如果您已經在Visio中,則無需將任何事情都遲到;你已經有一個對Visio對象模型的引用。早期綁定可以更容易地知道涉及哪些類型以及它們的成員是什麼。

1

你正在尋找的方法是 Click Here to see the Document Close Method

+0

是的,但你會如何建議關閉一個不可見的文檔。 MSDN的文檔建議關閉活動文檔。您會建議如何關閉上述文檔? 反正有'捕捉'窗口嗎? (假設它被打開並強制關閉它),並且'錯誤恢復下一個'? – Dingo

+0

謝謝大家的幫助! – Dingo

相關問題