1

Тема: макрос вставки экспрес блоков

экспресс-блок сохранен в файл шаблона
(хочется именно таким образом - чтобы "все свое - ношу с собой")
макрос вставки экспрес блоков

конструкция вида (штатный конструктор макросов)

 ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    Application.Templates("c:\шаблон.dotm"). _
      BuildingBlockEntries("A4_L_next_h").Insert Where:=Selection.Range, RichText _
        :=True

отрабатывает на ура

однако хочется - получить блок без жесткой ссылки на источник, поскольку в файле, создаваемом на основе шаблона - экземпляр блока таки присутствует

подсмотренное

Dim objTemplate As Template
    Dim objH As BuildingBlock
        Set objH = objTemplate.BuildingBlockTypes(wdTypeCustomHeaders) _
        .Categories("ПД").BuildingBlocks("A4_L_next_h")
            objH.Insert Selection.Range

дает 'Run-time error '91': Oject variable or with block variable not set'

хелп плз, спасибо

2

Re: макрос вставки экспрес блоков

...чей-то картинка заблокирована? ...ладно smile
внешняя ссылка

3

Re: макрос вставки экспрес блоков

...еще раз - пардон, во втором блоке кода накосячил - полная версия выглядит так:

Application.ScreenUpdating = False
    Dim objTemplate As Template
    Dim objH As BuildingBlock
    
    Set objTemplate = ActiveDocument.AttachedTemplate
    Set objH = objTemplate.BuildingBlockTypes(wdTypeCustomHeaders) _
        .Categories("ПД").BuildingBlocks("A4_L_next_h")

    objH.Insert Selection.Range

4

Re: макрос вставки экспрес блоков

сам спросил - сам ответил smile

ActiveDocument.AttachedTemplate.BuildingBlockEntries("Parts Function"). _
    Insert Where:=Selection.Range, RichText:=True

...мобыть - пригодится кому