我正在尝试选择现有 Visio 文件中的所有形状,即 i. e.在“帮助”层中删除它们。有没有办法使用 python 包“vsdx”来实现这一点?
最佳答案
您可以使用CreateSelection method带参数 visSelTypeByLayer = 3
。
现在我那里没有Python环境,我的简单VBA代码
Sub SOF_77409035()
Dim Sh As Shape
Dim sl As Selection
ActiveWindow.DeselectAll ' deselect all
Set sl = ActivePage.CreateSelection(3, 0, "help") ' create selection in memory
For Each Sh In sl ' iterate all shapes in selection
' ActiveWindow.Select Sh, 2 ' select shape visSelect = 2
sh.delete
Next
End Sub
更新
此 python 代码可以打印属于图层的形状列表。
但它无法选择这些形状。
import win32com.client as w32
visio = w32.Dispatch("visio.Application")
visio.Visible = 1
win = visio.activewindow
doc = visio.activedocument
pag = doc.pages(1)
sl = pag.createselection(3, 0,"help")
for i in range (1, sl.count+1):
sh = sl.item(i)
sh.delete
附注 vsdx python package有poor documentation ,我怀疑这是不可能的。
关于python - 在 Python 中获取 Visio 中的形状层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77409035/