关闭现有的Visio文件而不保存

时间:2016-11-11 21:34:56

标签: vba visio-vba

*.metadata.json

您好,

我有上面的代码块(可以工作)来打开一个文件。但是,当此文件已经打开时,我希望它自动关闭而不保存更改。

不幸的是我找不到像

这样的代码
    Dim AppVisio    
    Set AppVisio = CreateObject("visio.InvisibleApp")
    Dim vsoDoc

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

非常感谢任何其他强制关闭文件的选项。

2 个答案:

答案 0 :(得分:3)

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 :(得分:1)

您要查找的方法是Document对象的一部分(而不是Documents) Click Here to see the Document Close Method