
實現組合圖形內部子形狀的位置互換(左右對調)。
透過 Visio 巨集錄製功能,捕獲手動分解、移動、重組的完整操作序列:
Sub Macro1()
Dim UnDOScopeID1 As Long
UndoScopeID1 = Application.BeginUndoScope("移動對象")
ActiveWindow.DeselectAll
ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemFromID(60), visSubSelect
Application.ActiveWindow.Selection.Move 0.405512, -0#
ActiveWindow.Selection.RemoveFromGroup
Application.EndUndoScope UnDOScopeID1, True
ActiveWindow.DeselectAll
ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemFromID(25), visSubSelect
Application.ActiveWindow.Selection.Move 0.314961, -0#
Dim UnDOScopeID2 As Long
UndoScopeID2 = Application.BeginUndoScope("移動對象")
ActiveWindow.DeselectAll
ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemFromID(60), visSelect
Application.ActiveWindow.Selection.Move -0.688976, 0#
ActiveWindow.DeselectAll
ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemFromID(22), visSelect
ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemFromID(60), visSelect
ActiveWindow.Selection.AddToGroup
Application.EndUndoScope UnDOScopeID2, True
End Sub
RemoveFromGroup),移動後再加入(AddToGroup)BeginUndoScope/EndUndoScope 將操作包裝為單一可復原單位ItemFromID 硬編碼 ID,實際開發改用自訂屬性「設備類型」(如「閥A」、「閥B」)動態定位驗證了「化整為零」策略可行:透過程式控制分解群組、操作子形狀、重新組合,實現動態變化效果。