назначьте определенный стиль нескольким файлам Word, не открывая их

#ms-word #ms-office

#ms-word #ms-office

Вопрос:

Я создал новый стиль в Word (через «создать стиль …»), и я хочу назначить этот стиль 200 файлам Word. открывать их один за другим и назначать им стиль занимает много времени. Есть ли какой-либо способ присвоить им стиль, не открывая их?

Ответ №1:

Самый простой способ сделать это — использовать Word VBA.

Поместите 200 файлов Word, которым будет присвоен стиль, в каталог, не содержащий других файлов. Затем создайте файл шаблона .dotm (Word 2007 или выше) или .dot (Word 2003 или ниже) в другом месте. Создайте стиль для копирования в файле шаблона, а также поместите следующий код в модуль в том же файле шаблона (ALT-F11 для доступа к редактору):

 Sub BatchCopyStyles()

'Make sure that the template that contains the style to be copied and this code 
'is open and acting as the active document before running this macro

Dim file As Variant
Dim folderPath As String 'path to files receiving the style
Dim targetPath As String 
Dim templateFile As String 'file that contains style and this code
Dim styleTemplate As Document

folderPath = "C:UsersJoeDesktopTargetFolder"
templateFile = "C:UsersJoeDesktopCopyStyle.dotm"

Set styleTemplate = ActiveDocument
file = Dir(folderPath)

    While (file <> "")
        Set file = Documents.Open(FileName:=folderPath amp; file)
        styleTemplate.Activate
        targetPath = folderPath amp; file
        Application.OrganizerCopy Source:=templateFile, _
                    Destination:=targetPath, _
                    Name:="StyleToCopy", _
                    Object:=wdOrganizerObjectStyles
        file.Close wdSaveChanges
        file = Dir
    Wend
End Sub
  

Отредактируйте код для правильных путей, имени файла, названия стиля и т.д. С файлом, содержащим этот код и стиль, который будет назначен в качестве активного документа, запустите макрос из редактора VBA (F5). Это откроет каждый файл, скопирует стиль, а затем закроет файл. Открывать и закрывать документ 200 раз будет не очень приятно, но он должен выполнить свою работу.