В 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 ответ1

1

Мой VBA немного ржавый, но если вы вставляете его с тем же именем и присваиваете ему свойство index, вы можете использовать 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 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .