我使用的是Visio 2003,我想编写一个宏,它将选定的项目移动到称为“已删除项目”的隐藏层。
我尝试记录一个宏,而我所得到的仅仅是这个,它甚至没有向我展示如何与图层交互。:(
Sub Move_to_Delete_Layer()
'
' Moves the selected item(s) to the "zDeleted Items" Layer (which typically remains hidden). This is basically an "undo-able" way to delete the item.
'
' Keyboard Shortcut: Ctrl+d
'
Dim UndoScopeID1 As Long
UndoScopeID1 = Application.BeginUndoScope("Layer")
Application.ActiveWindow.Page.Shapes.ItemFromID(175).CellsSRC(visSectionObject, visRowLayerMem, visLayerMember).FormulaU = """9"""
Application.EndUndoScope UndoScopeID1, True
End Sub
编辑:
谢谢。SDK可以提供一些帮助,但不幸的是不足以产生有效的代码。我想我想做的基本上是
Dim myLayer As Visio.Layer
Set myLayer = Application.ActiveWindow.Page.Layers.Add("Deleted Items")
myLayer.Add Application.ActiveWindow.Selection.ContainingShape, 1
但是该代码不起作用。它给我一个错误,提示“运行时错误'-2032465766(86db089a)':当前已禁用请求的操作”
而且我也想从已经存在的任何图层中删除形状。我不确定该怎么做。
在VBA中,图层非常简单:这将从页面中删除所有图层成员资格:
dim i as integer
for i = ShpObj.LayerCount to 1 Step -1
dim Lay as Visio.Layer
set Lay = ShpObj.Layer(i)
Lay.Remove ShpObj
next
这将为您的删除层添加形状
Dim myLayer As Visio.Layer
Set myLayer = Application.ActiveWindow.Page.Layers.Add("Deleted Items")
myLayer.Add Application.ActiveWindow.Selection(1), 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句