不复制Word 2010中的形状.选择



是否可以在不使用.Select的情况下复制Word 2010中的形状?根据开发中心的说法,Anchor属性返回形状的锚定范围。这会是一条前进的道路吗?但是,下面的代码返回一个错误。

Sub createShape()
    Set myShape = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 1, 1, 1, 1)
    myShape.Anchor.Copy
End Sub

虽然似乎不可能在不选择形状的情况下复制形状,但也可以在不选择的情况下复制形状(这是我最初想要复制它的原因)。下面的代码给了我想要的东西:

Sub createShape()
    Set myshape = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100)
    Set anothershape = myshape.Duplicate
End Sub

如果你已经找到了你想要的东西,那就太好了,但你可以通过复制形状所锚定的段落(或者范围)来复制形状。例如:

Sub createShape()
   Dim myShape As Shape, myRange As Range
   Set myShape = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 10, 10, 10, 10)
   Set myRange = myShape.Anchor.Paragraphs(1).Range
   myRange.Copy
End Sub

然而,问题是,它会复制你将其锚定到的段落中的任何文本,你的锚定可能在一个表中,这可能会导致奇怪的事情发生。

您也可以在插入后将形状更改为内联形状,使其与文本相匹配,并且具有更明显的范围,因为锚点有移动的习惯,并且通常是不可预测的。

最新更新