3

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

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

2 回答 2

1

虽然似乎无法在不选择形状的情况下复制形状,但可以在不选择形状的情况下复制形状(这是我首先想要复制它的原因)。下面的代码给了我我正在寻找的东西:

Sub createShape()
    Set myshape = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100)
    Set anothershape = myshape.Duplicate
End Sub
于 2013-02-11T21:21:34.820 回答
1

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

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

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

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

于 2013-02-11T22:36:47.370 回答