用于选择当前活动段落中第一个形状的 VBA 代码

用于选择当前活动段落中第一个形状的 VBA 代码

在 Word 2013 中,我需要在宏中添加一个简单的 VBA 代码来选择当前活动段落中存在的第一个形状。

注意:我需要代码选择的形状是我在 BuildingBlockEntries 中创建并保存为自动文本的自定义形状。我用来插入形状的代码是:

Application.Templates( _
 "C:\Users\Administrator\AppData\Roaming\Microsoft\Templates\Normal.dotm") _
 .BuildingBlockEntries("_red_box").insert where:=Selection.Range, RichText:=True

选择形状的目的是通过以下代码将剪贴板内容粘贴到其中:

ActiveDocument.ActiveWindow.Selection.Paste)

我是 VBA 新手。选择形状的 VBA 代码是什么?

答案1

我的 VBA 有点生疏,但如果你用相同的名称插入,并给它一个索引属性,你可以使用 item(0) 选择第一个,使用 item(1) 选择第二个,等等...其中 item() 是你的实例的名称,0,1,2,3...是它是哪一个项目。

它可能就像添加一样简单:

dim MyShapes
MyShapes(0) = Application.Templates( ... )

由john.s2011编辑:

Sub Mymacro() 
    Dim MyShapes 
    MyShapes(0) = Application.Templates( _ 
    "C:\Users\Administrator\AppData\Roaming\Microsoft\Templates\Normal.dotm") _
    .Buildi‌​ngBlockEntries("myshape").insert where:=Selection.Range, _
    RichText:=True 

    Dim Rng As Range 
    With ActiveDocument 
        Set Rng = .GoTo(What:=wdGoToBookmark, Name:="\para") 
        Rng.ShapeRange(0).Select Rng.Paste 
    End With 
end sub 

相关内容