2012-11-16 23 views
0

我在Word文档中有一个形状,需要移动到书签位置。如何将Word中的形状移动到书签位置

我试图用“左”和“顶”的属性,但是,这并不工作,因为据我所知,书签不会有“左”和“右属性。

我曾尝试使用。剪切和粘贴,但这并不对形状工作

下面是代码来创建的形状:

Set shp = ActiveDocument.Content.InlineShapes.AddOLEControl("Forms.CommandButton.1") 

With ActiveDocument.InlineShapes(1).OLEFormat.Object 
    .Caption = "Test" 
    .Height = 30 
    .Width = 44 
End With 

With ActiveDocument.InlineShapes(1).ConvertToShape 
    .Name = "Test1" 
    .ZOrder (msoBringInFrontOfText) 
End With 
+1

您应该在您的问题中包含任何代码。 –

回答

1

而不是使用书签,你可以使用上的某个地方的文件的绝对位置

 Dim Test1 As Shape 

     Set Test1 = ActiveDocument.Shapes("Test1") 

     With Test1 
       .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage 
       .RelativeVerticalPosition = wdRelativeVerticalPositionPage 
       .Left = InchesToPoints(6.889) 
       .Top = InchesToPoints(0.374) 
     End With 


     End Sub 
0

这是一个非常老的线程,但基本前提仍然有效,并且可以使用VBA在书签位置(此处为名为'bmShape'的书签)插入控件,如下所示。

Dim oRng As Range 
Dim oShp As InlineShape 
Set oRng = ActiveDocument.Bookmarks("bmShape").Range 
oRng.Text = "" 
Set oShp = oRng.InlineShapes.AddOLEControl("Forms.CommandButton.1") 
oRng.End = oRng.End + 1 
oRng.Bookmarks.Add "bmShape" 

With oShp.OLEFormat.Object 
    .Caption = "Test" 
    .Height = 30 
    .Width = 44 
End With 

With oShp.ConvertToShape 
    .Name = "Test1" 
    .WrapFormat.Type = wdWrapSquare 
    .WrapFormat.Side = wdWrapBoth 
End With 
相关问题