Visio中点击画布对象如何反向同步高亮Drawing Explorer对应条目
Visio 需求实现方案
Visio原生暂不支持画布选中对象后自动在Drawing Explorer中高亮对应条目的反向同步功能,以下是对应需求的可行实现方式:
快速锁定背景形状(核心需求优先解决)
你需要的禁止选中背景形状的效果无需依赖Drawing Explorer或查找形状名,可直接通过修改形状属性实现:
- 右键点击背景形状,选择显示ShapeSheet
- 在ShapeSheet的
保护分类下找到LockSelect单元格,将值从0改为1 - 关闭ShapeSheet后,该背景形状将完全无法被选中,套索操作不会误触,需要编辑时再把值改回
0即可
如果需要频繁切换锁定状态,可使用VBA宏实现一键操作:
- 按
Alt+F11打开VBA编辑器,在左侧工程资源管理器中右键当前文档,选择插入 > 模块 - 粘贴以下代码:
' 锁定当前选中的形状为不可选中 Sub LockSelectedShape() If ActiveWindow.Selection.Count <> 1 Then Exit Sub ActiveWindow.Selection(1).CellsU("LockSelect").FormulaU = 1 End Sub ' 解锁当前页所有不可选中的形状 Sub UnlockAllLockedShapes() Dim shp As Visio.Shape For Each shp In ActivePage.Shapes If shp.CellsExistsU("LockSelect", False) Then If shp.CellsU("LockSelect").ResultIU = 1 Then shp.CellsU("LockSelect").FormulaU = 0 End If End If Next End Sub
- 按
Alt+F8调出宏窗口,选择对应宏名点击运行即可,也可将宏添加到快速访问栏实现一键点击操作。
常驻显示当前选中形状名称
如果需要实时获取选中形状的名称,无需反复打开ShapeSheet,可通过VBA实现常驻显示栏:
- 在VBA编辑器中双击左侧工程资源管理器中的
ThisDocument模块 - 粘贴以下代码:
Public WithEvents visApp As Visio.Application Private Sub Document_Open() Set visApp = Application End Sub Private Sub visApp_WindowSelectionChanged(ByVal Window As IVWindow) On Error Resume Next If Window.Selection.Count = 1 Then ' 将形状名显示在Visio状态栏 Application.StatusBar = "当前选中形状名:" & Window.Selection(1).Name Else Application.StatusBar = "" End If End Sub
- 保存文档为
启用宏的Visio绘图(*.vsdm)格式,重新打开并启用宏后,选中任意单形状时,Visio底部状态栏会实时显示对应形状的名称,无需额外弹窗。
内容的提问来源于stack exchange,提问作者Barleyman
相关产品推荐
相关产品推荐

