【发布时间】:2022-01-25 23:10:24
【问题描述】:
Documents.OpenEx method (Visio) 可以有一些标志,如果我想隐藏打开用户已经在 Visio 中打开的文件怎么办?
我尝试使用 visOpenCopy 标志,但在这种情况下,我遇到了另一个问题 - 在随后调用 Document.ExportAsfixedFormat 以在结果文档中以 PDF 格式保存文档时,文件属性(标题、作者、主题和其他)不保存。
我分别尝试了标志visOpenCopy、visOpenRo 和visOpenHidden 的所有可能组合。已在另一个程序中打开的文件未在 Documents.OpenEx 中打开,或者属性未保存为 Pdf。
显而易见的解决方案似乎是在打开之前手动将文件复制到 TEMP 中,但也许有人会更好地告诉解决方案。
在 Office 2016 和 2013 64 位中测试
添加:
// docs.microsoft.com/en-us/office/vba/api/visio.documents.openex
fVisioDoc := fVisioApp.Documents.OpenEx(Input, 0 or 0 or 0); // does not open, properties is saved
fVisioDoc := fVisioApp.Documents.OpenEx(Input, 0 or 0 or visOpenHidden); // does not open, properties is saved
fVisioDoc := fVisioApp.Documents.OpenEx(Input, 0 or visOpenRo or 0); // does not open, properties is saved
fVisioDoc := fVisioApp.Documents.OpenEx(Input, 0 or visOpenRo or visOpenHidden); // does not open, properties is saved
fVisioDoc := fVisioApp.Documents.OpenEx(Input, visOpenCopy or 0 or 0); // open, properties is absent
fVisioDoc := fVisioApp.Documents.OpenEx(Input, visOpenCopy or 0 or visOpenHidden); // open, properties is absent
fVisioDoc := fVisioApp.Documents.OpenEx(Input, visOpenCopy or visOpenRo or 0); // open, properties is absent
fVisioDoc := fVisioApp.Documents.OpenEx(Input, visOpenCopy or visOpenRo or visOpenHidden); // open, properties is absent
// docs.microsoft.com/en-us/office/vba/api/visio.documents.addex
fVisioDoc := fVisioApp.Documents.AddEx(Input, 0, 0 or 0 or 0); // open, properties is absent
fVisioDoc := fVisioApp.Documents.AddEx(Input, 0, 0 or 0 or visOpenHidden); // open, properties is absent
fVisioDoc := fVisioApp.Documents.AddEx(Input, 0, 0 or visOpenRo or 0); // open, properties is absent
fVisioDoc := fVisioApp.Documents.AddEx(Input, 0, 0 or visOpenRo or visOpenHidden); // open, properties is absent
fVisioDoc := fVisioApp.Documents.AddEx(Input, 0, visOpenCopy or 0 or 0); // open, properties is absent
fVisioDoc := fVisioApp.Documents.AddEx(Input, 0, visOpenCopy or 0 or visOpenHidden); // open, properties is absent
fVisioDoc := fVisioApp.Documents.AddEx(Input, 0, visOpenCopy or visOpenRo or 0); // open, properties is absent
fVisioDoc := fVisioApp.Documents.AddEx(Input, 0, visOpenCopy or visOpenRo or visOpenHidden); // open, properties is absent
// docs.microsoft.com/en-us/office/vba/api/Visio.Document.ExportAsFixedFormat
fVisioDoc.ExportAsFixedFormat(
visFixedFormatPDF, // FixedFormat
Output, // OutputFileName
【问题讨论】:
-
你试过
AddEx吗? Documents.AddEx method (Visio) -
我测试了
AddEx方法,在这种情况下,文档无论如何都会打开,但属性无论如何都不会保存在 pdf 中。